Office Scriptsの基本!Excel自動化で使う関数とコードの書き方
生徒
「Excelの別のブックにあるデータを、自動でまとめたいんですが、Office Scriptsでできますか?」
先生
「できますよ。Office Scriptsでは、Excelワークブックやワークシートを操作して、データをコピーしたり貼り付けたりできます。」
生徒
「ブック間って難しそうです…。パソコンもあまり触ったことがなくて…」
先生
「大丈夫です。ノートから別のノートに書き写すイメージで、順番に説明しますね。」
1. Office Scriptsでいう「ブック間データ連携」とは
Office Scriptsにおけるブック間データ連携とは、複数のExcelワークブック(Excelファイル)にまたがってデータをやり取りする考え方です。現実の作業でたとえると、「Aというノートに書いてある表を、Bというノートに写す」作業に近いです。
Excel OnlineのOffice Scriptsは、基本的に今開いているワークブックを操作します。そのため、直接ほかのブックを開いて操作することはできません。しかし、OneDriveやSharePointに保存されたExcelと組み合わせることで、実務では十分なデータ連携が実現できます。
検索キーワードとしては、「Office Scripts ブック間 連携」「Excel 自動化 データ連携」「Office Scripts ワークブック 操作」などで調べる人が多い分野です。
2. 初心者が知っておくべきOffice Scriptsの前提ルール
まず大切なのは、Office ScriptsはExcel Online専用という点です。パソコンに入っているExcelではなく、ブラウザで開くExcelで使います。
また、Office ScriptsはTypeScriptというプログラミング言語で書きます。といっても、難しい数式や記号はほとんど使いません。「どのシートの、どのセルに、何を書くか」を順番に書くだけです。
ブック間データ連携では、次の考え方が基本になります。
- 元データがあるワークブックを開く
- コピー用のシートを用意する
- コピー先のワークブックで貼り付ける
この流れを理解するだけで、Office ScriptsによるExcel自動化が一気に身近になります。
3. 同じブック内でのデータコピーを理解しよう
いきなり別ブックは難しいので、まずは同じワークブック内のシート間コピーから見ていきます。これは、教室の中で席を移動するような感覚です。
function main(workbook: ExcelScript.Workbook) {
const sheetA = workbook.getWorksheet("Sheet1");
const sheetB = workbook.getWorksheet("Sheet2");
const sourceRange = sheetA.getRange("A1:C3");
const targetRange = sheetB.getRange("A1");
targetRange.copyFrom(sourceRange);
}
このコードでは、「Sheet1のA1からC3まで」を、「Sheet2のA1」にコピーしています。getRangeは「この範囲を指定する」という意味です。
初心者の方は、「コピー元」と「コピー先」を意識するだけで十分です。
4. ブック間連携の基本アイデアを理解する
Office Scripts単体では、別のワークブックを直接開けません。そのため、実務ではPower Automateと組み合わせる方法がよく使われます。
考え方はとてもシンプルです。
- ① 元ブックでOffice Scriptsを実行してデータを整える
- ② Power Automateで別ブックを開く
- ③ 整えたデータをコピーする
この記事ではOffice Scriptsの範囲に絞り、「コピーしやすい形を作る」部分を丁寧に解説します。
5. ブック間連携を意識したデータ整形のコード例
ブック間データ連携では、1行目に見出し、2行目以降にデータという形がとても重要です。これは、表計算ソフト共通の基本です。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
sheet.getRange("A1").setValue("名前");
sheet.getRange("B1").setValue("売上");
sheet.getRange("A2").setValue("りんご");
sheet.getRange("B2").setValue(120);
}
このようにデータをそろえておくと、別ブックに貼り付けても崩れません。検索では「Excel データ整形 自動化」「Office Scripts 表 作成」といったキーワードでよく調べられます。
6. シートを新しく作って連携用データをまとめる
ブック間連携では、連携専用シートを作るのがおすすめです。これは、引き出しを分けて整理する感覚です。
function main(workbook: ExcelScript.Workbook) {
const newSheet = workbook.addWorksheet("連携用");
newSheet.getRange("A1").setValue("商品");
newSheet.getRange("B1").setValue("数量");
}
このシートだけをコピー対象にすれば、ミスが減り、初心者でも安心して運用できます。
7. 実行結果のイメージを確認しよう
上記のスクリプトを実行すると、Excel上では次のような結果になります。
A1:商品
B1:数量
文字が自動で入力されるだけでも、「Excelが勝手に動いた!」と実感できます。これがExcel自動化の第一歩です。
8. ブック間データ連携でよくある失敗と対策
初心者がつまずきやすいポイントは、「シート名の間違い」「セル範囲の指定ミス」「全角と半角の混在」です。
特にシート名は、Excelに表示されている名前と完全一致していないと動きません。「連携用」と「連携 用」は別物です。
Office ScriptsでのExcelワークブック操作は、丁寧さが最大のコツです。焦らず、一つずつ確認しましょう。
まとめ
Office ScriptsでのExcel自動化とブック間連携の重要ポイント
Office Scriptsを活用したExcel自動化は、日々の業務効率化において非常に大きな効果を発揮します。特に、複数のExcelワークブックをまたいだデータ連携は、手作業で行うと時間がかかるうえにミスが発生しやすい作業ですが、スクリプト化することで安定した処理が可能になります。 本記事では、Office Scriptsによる基本操作から、ブック間データ連携を意識したデータ整形、そして実務でよく使われる連携用シートの作成までを段階的に学びました。
まず重要なのは、Office ScriptsはExcel Onlineで動作するという前提です。デスクトップ版Excelとは異なり、ブラウザ上で操作することでスクリプトが実行されるため、クラウド環境でのデータ管理と相性が良い点が特徴です。この仕組みを理解することで、OneDriveやSharePointと連携した柔軟なデータ活用が可能になります。
また、同一ブック内でのデータコピー処理を理解することは、ブック間連携への第一歩です。コピー元とコピー先を明確にし、getRangeで範囲を指定し、copyFromで転記するという基本構造は非常に重要です。この考え方は、どのようなExcel自動化にも共通して使われる基礎スキルです。
データ整形と連携用シートの活用
ブック間データ連携において最も重要なのは、「データの形を整えること」です。1行目に見出し、2行目以降にデータを配置することで、どの環境でも扱いやすい構造になります。このルールを守ることで、Power Automateなどの外部ツールと組み合わせた場合でも、スムーズにデータの受け渡しが可能になります。
さらに、連携専用のワークシートを作成することで、不要なデータ混入を防ぎ、処理の安全性が向上します。実務では「連携用」「出力用」などの名前を付けて管理することで、誰が見ても分かりやすい構成になります。
サンプルプログラムで復習
以下は、データ整形と連携用シート作成を組み合わせた実践的なサンプルです。Excel自動化の基礎として、何度も繰り返し確認しておくことをおすすめします。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.addWorksheet("連携用");
sheet.getRange("A1").setValue("商品名");
sheet.getRange("B1").setValue("売上");
sheet.getRange("A2").setValue("みかん");
sheet.getRange("B2").setValue(300);
sheet.getRange("A3").setValue("バナナ");
sheet.getRange("B3").setValue(250);
}
このコードでは、連携用シートを新しく作成し、見出しとデータを整理しています。このように整ったデータは、そのまま別のExcelワークブックへコピーしても崩れることがなく、安定したデータ連携が可能になります。
実行結果の確認
A1:商品名
B1:売上
A2:みかん
B2:300
A3:バナナ
B3:250
実行結果を見ることで、スクリプトの動作を視覚的に確認できます。特に初心者の方は、コードだけでなく結果を必ず確認することで理解が深まります。
よくあるミスと改善ポイント
Office Scriptsを使ったExcel自動化では、細かなミスが動作不良の原因になることがあります。特に注意したいのは、シート名の誤記、セル範囲のズレ、全角半角の混在です。これらは一見すると小さな違いですが、スクリプトでは完全一致が求められるため、エラーの原因になります。
また、データ構造がバラバラな状態で連携しようとすると、コピー後にデータが崩れることがあります。必ず事前にデータ整形を行い、統一された形式にすることが重要です。
Excel自動化を成功させるための考え方
Excel自動化を成功させるためには、「どのデータを、どこから、どこへ移動するのか」を明確にすることが大切です。難しいプログラミング知識よりも、作業の流れを整理する力が重要になります。
Office Scriptsは、初心者でも扱いやすい設計になっており、シンプルな処理から始めて徐々に複雑な自動化へと発展させることができます。まずは小さな成功体験を積み重ねることが、スキル向上への近道です。
生徒
「Office Scriptsって難しそうだと思っていたんですが、コピーの仕組みを理解したら少しイメージできました!」
先生
「いいですね。その感覚がとても大事です。まずは同じブック内でのコピーを理解することが、ブック間連携への第一歩になります。」
生徒
「連携用シートを作るっていうのも、すごく分かりやすかったです。整理されていると安心ですね。」
先生
「その通りです。データを整えることは、プログラムを書くことと同じくらい重要です。むしろ土台になる部分ですね。」
生徒
「これなら、売上データを別のファイルにまとめる処理もできそうな気がしてきました!」
先生
「ぜひ挑戦してみてください。小さな自動化から始めていけば、やがて大きな業務改善につながりますよ。」