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ワークブック操作は、丁寧さが最大のコツです。焦らず、一つずつ確認しましょう。