Office Scriptsの基本!Excel自動化で使う関数とコードの書き方
生徒
「Office ScriptsでExcelの操作を自動化したいんですが、どんなコードを書けばいいんですか?」
先生
「Office ScriptsはTypeScriptという言語を使ってExcelのセルやシートを操作できますよ。簡単なコードで Excel を動かせます。」
生徒
「どんなふうにExcelを自動化するんですか?」
先生
「今日は、Office Scriptsで“できること”と“できないこと”を分かりやすくまとめていきますね。」
1. Office Scriptsとは?(Excelをクラウドで自動化する仕組み)
Office Scriptsは、Excel Onlineで動作するクラウド型の自動化スクリプトです。普段のExcel操作を、スクリプトという「命令書」の形にして自動化できます。セルの値変更、シート追加、表(テーブル)作成、グラフ更新など、よく行う操作をボタンひとつで再現できる仕組みです。
Excel Online(ブラウザ版Excel)で動くため、パソコンの環境に依存せず、どこでも同じ結果を得られるという大きな特徴があります。
2. Office Scriptsでできること(Excel操作を幅広く自動化)
まずは、Office Scriptsが得意とする「できること」から紹介します。プログラミング未経験の人でも使えるように設計されているため、Excelでよく行う作業はほとんど自動化できます。
● セル・レンジの操作ができる
値の書き込み、読み取り、計算、書式設定などが可能です。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
sheet.getRange("A1").setValue("自動入力");
}
● シート操作(追加・削除・名前変更)
月次シート作成やテンプレートのコピーなどが自動化できます。
● テーブル(ListObject)の追加や行の挿入
データをテーブルとして管理し、分析しやすい形に整えられます。
● グラフ自動生成と更新
データを更新するたびにグラフを作り直す作業を自動で行えます。
● 条件付き書式の設定
「一定以上の売上は青くする」など、見やすい表を自動で作成できます。
● OneDrive/SharePoint内のファイル操作
クラウド保存されたExcelファイルを開いて処理し、保存するところまでスクリプトで実行できます。
● 実行の安定性が高い
Excel内部を直接操作するAPI方式で動くため、画面の位置やデザインの影響を受けません。
3. Office Scriptsができること:業務に直結するシナリオ例
Office Scriptsは単なるExcel操作以上の処理も可能です。実際の業務で役立つ場面を具体的に紹介します。
● 売上データを自動集計してレポートを作成
毎日の売上データを読み込み、集計し、レポートシートに反映する処理はスクリプトだけで完結できます。
● データの整形(不要列削除/並べ替え)
毎日CSVを貼り付ける必要がある業務でも、スクリプトで自動整形できます。
● テーブルに新規データを連続追加
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getWorksheet("データ");
const table = sheet.getTables()[0];
table.addRow(-1, ["2024/01/01", 1000, "追加"]);
}
● 月次シートを自動生成して初期値を設定
テンプレートシートのコピー、日付設定、見出し調整などが簡単に実行できます。
● グラフを毎回正しいデータ範囲で更新
手動操作で起こりがちな「グラフが古い範囲のまま」というミスを防げます。
4. Office Scriptsで「できないこと」も知っておこう
とても便利なOffice Scriptsですが、万能ではありません。特に初心者が誤解しやすい「できないこと」を明確に理解しておくと、適切に使い分けられます。
● Excel Online以外の操作はできない
例えば次のような操作はOffice Scriptsではできません。
・Webブラウザ操作
・PDF操作
・他のデスクトップアプリ操作
・メール送信(Outlook側のAPIが必要)
Excel内部に特化した自動化のため、外部アプリには触れません。
● ローカル(PC内)のファイルには直接アクセスできない
Office Scriptsはクラウドで動くため、パソコン内のフォルダやデスクトップにアクセスできません。OneDriveまたはSharePointのファイルのみ操作できます。
● 画面操作・クリック・キー入力の自動再生は不可
RPAのように「画面を真似する」動作はありません。
● 複雑な外部連携やワークフロー制御は苦手
Power Automateと併用すれば可能になりますが、単体ではExcel領域に限定されます。
● 大量データ処理は時間がかかることがある
数万行を一気に処理すると実行時間が長くなり、タイムアウトが発生する可能性があります。
5. Office ScriptsとRPA・Power Automateとの違い
Office Scripts単体で足りない部分は、Power AutomateやRPAが補ってくれます。
● Office Scripts:Excel内部を直接操作するのが得意
● Power Automate:クラウドサービス同士の連携が得意
● RPA:画面操作の再現が得意
それぞれ役割が違うため、組み合わせることで高度な業務自動化が可能になります。
6. Office Scriptsが特に強いシーン・弱いシーン
できること/できないことを整理すると、どのような場面で力を発揮するかがよく分かります。
■ Office Scriptsが強い場面
・Excelで完結する業務
・定型的なレポート作成
・テンプレート管理
・大量のセル操作
・クラウド上のファイル更新
■ Office Scriptsが弱い場面
・複数アプリをまたぐ業務
・Web画面の操作
・PC内のファイルの読み書き
・画像認識を使うシナリオ
Excel中心の作業であればOffice Scriptsだけで完結しますが、外部要素が絡む場合は他ツールとの併用が必要です。
7. Office Scriptsを使う前に知っておきたい注意点
便利さばかりに目が行きがちですが、安全に使うために次のポイントも理解しておく必要があります。
● 実行環境はExcel Onlineに限定される
デスクトップ版ExcelではOffice Scriptsは動きません。
● 処理速度に限界がある(タイムアウト)
処理が長すぎる場合は途中で停止することがあります。
● 共有ファイルの場合はロック状態に注意
他の人が編集中のときはスクリプトが実行できないことがあります。
● APIの仕様に合わせた記述が必要
Excel Onlineの仕様に沿った命令しか使えないため、VBAのような自由度はありません。
8. 「できること」と「できないこと」を理解すると自動化がもっと進む
Office ScriptsはExcel業務に特化しているからこそ、非常に高い安定性と実用性を持っています。一方、Excel以外の領域は不得意なため、得意分野と苦手分野を理解して運用することが大切です。
Excelの内部処理はOffice Scripts、外部システムとの接続はPower Automate、画面操作はRPAというように使い分けることで、無理なく業務自動化の範囲を広げることができます。
「どこまでOffice Scriptsでできるのか?」を正しく知ることは、効率的な自動化への第一歩です。
まとめ
ここまで見てきたとおり、Office ScriptsはExcel Onlineの内部を直接操作する仕組みを持ち、セルやシート、テーブル、グラフといったExcel固有の要素を正確に自動化できる強力な道具です。一方で、Excel以外のアプリケーションやWebブラウザ操作には対応していないため、RPAやPower Automateとの組み合わせが大きな効果を発揮します。つまり、Office Scriptsを単体でとらえるのではなく、「Excel操作に特化した役割を持つ自動化の中心」として考えると、その価値がより明確になります。クラウドの仕組みと連携して動作する特性を理解することで、作業環境が異なるメンバー同士でも同じ結果が得られ、組織全体の業務品質を向上させる大きな力となるのです。 日々のExcel業務において、繰り返し作業が多いほど自動化の恩恵は大きくなります。単純なセル入力から、表の整形、レポートの作成、グラフ更新、テンプレート化された資料の作成まで、Office Scriptsで扱える範囲は広く、初心者でも始めやすい設計がされています。しかし、クラウドベースの動作である以上、ローカルファイルへのアクセスや画面操作のような分野は不得意であるため、「どこからどこまで自動化できるのか」を理解して使い分けることが非常に重要です。 Office Scriptsが最も強みを発揮するのは「Excel内部の正確な処理」であり、RPAが補う部分はその外側の動きです。外部システムへの入力や複数アプリをまたぐ操作はRPAが担当し、Excelのデータ加工・整形・集計はOffice Scriptsが担当することで、ミスの少ない実務的な自動化を構築できます。こうした考え方が身につけば、単なる自動化ツールではなく、業務全体を合理化する仕組みそのものとしてOffice Scriptsを活用できるようになります。 以下のサンプルコードは、今回学んだ「できること」と「できないこと」の整理にも役立つ例として、Excel内部の情報を自動処理しながら、外部連携を意識したデータ準備を行うシンプルなスクリプトです。
Office Scriptsで実行できる処理例(内部処理+外部連携を意識した出力)
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
// 見出しの設定
sheet.getRange("A1").setValue("項目");
sheet.getRange("B1").setValue("値");
sheet.getRange("A2").setValue("集計結果");
// データの合計を計算
const range = sheet.getRange("C2:C50").getValues();
let total = 0;
range.forEach(row => total += Number(row));
sheet.getRange("B2").setValue(total);
// 外部連携用の新しいシートを作成
const exportSheet = workbook.addWorksheet("外部連携データ");
exportSheet.getRange("A1").setValue("集計データ");
exportSheet.getRange("B1").setValue(total);
// 更新日時の書き込み
exportSheet.getRange("A3").setValue("更新日時");
exportSheet.getRange("B3").setValue(new Date().toLocaleString());
}
このスクリプトは、セル計算、データ整形、新規シート作成といったOffice Scriptsが得意とする処理を組み合わせたものです。RPAやPower Automateと併用する場合、このように「外部システムが読み取りやすい中間データ」を作ることで、後続処理が正確に実行できるようになります。Excel内部の処理だけで完結するケースでは、テンプレート更新や集計レポート作成の自動化にもそのまま応用できます。Office Scriptsの強みを理解したうえで構築すれば、無駄なく自然な自動化が実現し、業務全体の流れが驚くほどスムーズになります。 まとめとして、「Office ScriptsはExcelの内部処理に特化した確かな自動化ツールであり、外部との連携には他ツールを組み合わせることで真価を発揮する」という視点を覚えておきましょう。Excel Onlineの安定した環境とTypeScriptによる分かりやすい命令体系が、初心者にも扱いやすく、クラウド時代の業務にしっかり適応しています。
生徒
「Office Scriptsがどこまでできるのか、ようやく理解できてきました!Excelの内部処理に強い理由も納得できました。」
先生
「そうですね。Excelのデータ構造に直接アクセスできるのが大きな強みです。だからこそ安定性も高く、画面の変化にも影響を受けにくいんですよ。」
生徒
「逆に、画面操作や外部アプリの操作はできない点もよく分かりました。その部分はRPAやPower Automateが担当するんですね。」
先生
「その通りです。それぞれの特性を理解して組み合わせることで、もっと自然で無理のない自動化ができます。業務全体を見て考えることが大切ですよ。」
生徒
「Excel中心の業務ならOffice Scriptsだけでも十分役立ちますね。今回のコード例もとても参考になりました。」
先生
「まずは身近な処理から試していくと良いでしょう。できること・できないことを把握すれば、自動化の幅はどんどん広がりますよ。」