Office Scriptsの基本!VBAから移行する人向けTypeScript入門
生徒
「今までExcelはVBAで自動化してきたんですが、Office ScriptsではTypeScriptを使うと聞いて不安です…」
先生
「VBA経験があるなら大丈夫です。考え方は似ていますし、TypeScriptの方が安全で分かりやすい部分も多いですよ。」
生徒
「VBAと何が一番違うんですか?コードの書き方も全然違いそうで…」
先生
「今日は、VBAからOffice Scriptsへ移行する人向けに、TypeScriptの基本をExcel操作に絞って説明します。」
1. Office Scriptsとは?
Office Scriptsは、Excel Onlineで使える自動化スクリプト機能です。Excelの「自動化」タブから実行でき、セルの値変更、計算、シート操作などをまとめて自動化できます。
従来のVBAはデスクトップ版Excelが中心でしたが、Office Scriptsはクラウド上のExcelで動作します。そのため、インストールやセキュリティ設定を気にせずに使えるのが特徴です。
2. VBAとOffice Scriptsの大きな違い
VBAから移行する人が最初に戸惑うのは、「言語が違う」ことです。VBAはExcel専用の言語ですが、Office ScriptsではTypeScriptを使います。
ただし、目的は同じです。どちらも「Excelを自動で操作する」ためのものです。VBAの「Workbook」「Worksheet」「Range」という考え方は、Office Scriptsでもそのまま登場します。
3. TypeScriptはVBAより厳しいが親切
TypeScriptは、VBAよりもルールが厳しい言語です。最初は「エラーが多い」と感じるかもしれません。
しかしこれは欠点ではありません。TypeScriptは、実行する前に「ここは間違っているかもしれません」と教えてくれます。VBAでは実行してから気づいていたミスを、事前に防げるのが大きな違いです。
4. VBAのSubとTypeScriptのmain関数
VBAではSubプロシージャから処理が始まりました。Office Scriptsでは、必ずmain関数から処理が始まります。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
sheet.getRange("A1").setValue("VBAから移行");
}
VBAのSubと同じように、「ここがスタート地点」と覚えれば問題ありません。
5. セル操作の考え方はVBAとほぼ同じ
VBAではRange("A1").Valueのように書いていましたが、Office Scriptsでもセル操作の流れは同じです。
「シートを取得して、セルを指定して、値を設定する」という順番は変わりません。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
sheet.getRange("B1").setValue(100);
}
VBA経験者なら、この流れはすぐに理解できます。
6. 型という考え方がVBAとの最大の違い
VBAでは、変数の型をあまり意識せずに書ける場面が多くありました。一方、TypeScriptでは「型」をはっきり決めます。
型とは、「この変数には何が入るか」というルールです。Excelで言えば、「文字専用」「数字専用」の箱を用意する感覚です。
function main(workbook: ExcelScript.Workbook) {
const total: number = 500;
workbook.getActiveWorksheet().getRange("C1").setValue(total);
}
この型指定のおかげで、計算ミスやデータの取り違えが減ります。
7. VBAのWith構文はメソッドチェーンに近い
VBAのWith構文を使っていた人は、Office Scriptsのメソッドチェーンに親しみやすいはずです。
処理を点でつなげて書くことで、Excel操作の流れをそのままコードにできます。
function main(workbook: ExcelScript.Workbook) {
workbook.getActiveWorksheet().getRange("D1").setValue("TypeScript");
}
「Workbook → Worksheet → Range → 値設定」という流れが、左から右に読めます。
8. VBA経験者が安心して移行するための考え方
VBAからOffice Scriptsへ移行するときは、「全部新しく覚える」と考えなくて大丈夫です。Excel操作の考え方は共通しています。
違うのは書き方と安全性です。TypeScriptは、最初は厳しく感じますが、慣れると「ミスを防いでくれる相棒」になります。VBAで培ったExcel自動化の経験は、そのままOffice Scriptsでも活かせます。