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です。

コード例

🚀 Excel自動化を「点」から「線」へ。体系的に学びたい方へ

本記事で解説したテクニックは、日々の業務を効率化する大きな一歩です。

しかし、実務で直面する複雑な課題を解決するためには、基礎から体系的に知識を身につけることが最短ルートになります。

「ネットの情報だけでは限界を感じる」「もっと自由自在にツールを作れるようになりたい」

そうお考えのあなたにおすすめしたいのが、Officeスクリプトを網羅的に学べるこちらの電子書籍です。

『ビジネスパーソンのためのOfficeスクリプト入門:Excel作業の自動化とデータ処理【2025年7月大幅改訂版】』

この書籍は、忙しいビジネスパーソンが最短でOfficeスクリプトを習得できるよう設計されています。

本書のここがポイント!

  • 🔰 プログラミング知識ゼロでも大丈夫! 専門用語を避け、初心者目線でやさしく解説。「VBAは難しかった…」という方でも安心してスタートできます。
  • 🔄 VBA経験者はスムーズに移行! VBAとの違いを比較しながら解説しているので、今ある知識を無駄なく活かせます。
  • 【2025年7月大幅改訂】最新トレンドを完全網羅! 話題の生成AIを活用してコード作成を強力に支援する方法を新設。さらに、Power Automateと連携した高度な自動化シナリオも大幅に拡充されています。

「脱・手作業」を実現し、ワンランク上の業務効率化を目指すための必携書です。ぜひ手に取ってみてください。

関連記事

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

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