Excel Office スクリプト セルのコピー/ペースト
Office スクリプトにおけるセルコピー/ペースト方法を紹介します。
使い方
スクリプトの記録を使うとアクティブシートを対象にしますが、
起動する場所によって挙動が変わってしまうため、
シート名を指定しての操作を推奨します。(赤字は可変部分)
ペースト先のセル範囲.copyFrom(コピー元のセル範囲,コピー対象,空白セルを無視,行列の入替)
パラメータのコピー元のセル範囲以外は省略可能です。
ペースト先はセル範囲ですが、単独セルでも構いません。
ペースト可能か不可能かはExcelのコピー&ペーストと同様のルールです。
次の例は全てTestシートのE5セルに対してA1:A5セルの内容をすべてコピーする例です。
function main(workbook: ExcelScript.Workbook) {
workbook.getWorksheet("Test").getRange("E5").copyFrom(
workbook.getWorksheet("Test").getRange("A1:A5")
);
}
パラメータ
コピー元のセル範囲(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と連携した高度な自動化シナリオも大幅に拡充されています。
「脱・手作業」を実現し、ワンランク上の業務効率化を目指すための必携書です。ぜひ手に取ってみてください。