Excel Office スクリプト セルのコピー/ペースト

2023年3月24日

Japanese version.

Office スクリプトにおけるセルコピー/ペースト方法を紹介します。

使い方

スクリプトの記録を使うとアクティブシートを対象にしますが、

起動する場所によって挙動が変わってしまうため、

シート名を指定しての操作を推奨します。(赤字は可変部分

ペースト先のセル範囲.copyFrom(コピー元のセル範囲,コピー対象,空白セルを無視,行列の入替)

パラメータのコピー元のセル範囲以外は省略可能です。

ペースト先はセル範囲ですが、単独セルでも構いません。

ペースト可能か不可能かはExcelのコピー&ペーストと同様のルールです。

次の例は全てTestシートのE5セルに対してA1:A5セルの内容をすべてコピーする例です。

function main(workbook: ExcelScript.Workbook) {
  workbook.getWorksheet("Test").getRange("E5").copyFrom(
    workbook.getWorksheet("Test").getRange("A1:A5")
  );
}
getRangeで指定

パラメータ

コピー元のセル範囲(sourceRange)

copyFromメソッドの最初のパラメータで省略不可です。

コピー元のセル範囲のアドレスを指定します。

コピー対象(copyType)

copyFromメソッドの二番目のパラメータで省略可能です。

次のようにコピー対象を指定します。

設定値説明
ExcelScript.RangeCopyType.all通常の貼り付けです。
省略時はこの設定です。
ExcelScript.RangeCopyType.formats書式のみ貼り付けます。
ExcelScript.RangeCopyType.formulas数式のみ貼り付けます。
ExcelScript.RangeCopyType.values値のみ貼り付けます。
コード例

空白セルを無視(skipBlanks)

copyFromメソッドの三番目のパラメータで省略可能です。

trueを指定するとコピー元のセルに値がなければ無視します。

(書式だけがある場合、それも無視します)

falseでは通常の貼り付けが行われます。省略するとfalseです。

コード例

例えばコピー元のセルが空白で、コピー先のセルに値がある場合、falseであれば空白で上書きし、trueであればコピー先の値が、そのまま残ります。

行列の入替(transpose)

copyFromメソッドの四番目のパラメータで省略可能です。

trueを指定すると行列を入れ替えます。

falseでは通常の貼り付けが行われます。省略するとfalseです。

コード例

Office スクリプトを効果的に習得したい方へ

当サイトの情報を電子書籍用に読み易く整理したコンテンツを

買い切り700円またはKindle Unlimited (読み放題) で提供中です。

体系的に学びたい方は是非ご検討ください。

アップデートなどの更新事項があれば随時反映しています。

なお購入後に最新版をダウンロードするには

Amazonへの問い合わせが必要です。

関連記事

Excel Office スクリプトの記事一覧

Excel データの切り取り、コピー、貼り付け