Office Scriptsの基本!Excel自動化で使う関数とコードの書き方
生徒
「Office ScriptsでExcelの操作を自動化したいんですが、どんなコードを書けばいいんですか?」
先生
「Office ScriptsはTypeScriptという言語を使ってExcelのセルやシートを操作できますよ。簡単なコードで Excel を動かせます。」
生徒
「どんなふうにExcelを自動化するんですか?」
先生
「それでは、Office Scriptsの基本と、TypeScriptベースで動くExcel自動化の全体像を一緒に見ていきましょう!」
1. Office Scriptsとは?(Excel自動化の基礎)
Office Scriptsとは、Excel Onlineで動くクラウド型の自動化機能です。Excelを手作業で操作する代わりに、スクリプトという小さな命令書を実行することで、自動でセルを書き換えたり、シートを作成したり、表(テーブル)を更新したりできます。パソコンが苦手な人でも、普段行っている操作をそのまま「スクリプトで実行する」というイメージで使えるため、業務の効率化に直結します。
Excel VBAとは違い、Office ScriptsはTypeScript(JavaScriptを強くした言語)で書くため、読みやすく、初心者でも理解しやすい仕組みになっています。プログラムというと難しそうに聞こえますが、実際には「A1 に文字を書き込む」「新しいシートを作る」といった直感的な指示だけで動かせます。
2. TypeScriptベースで動くExcel自動化の全体像
Office Scriptsの特徴は、Excel の自動化がTypeScriptベースのコードで動くことです。TypeScriptは、Web開発でも使われるJavaScriptを強化した言語で、Excelが理解できる形式に変換され、クラウド上のExcelがその命令を実行します。これにより、Excel Online、OneDrive、SharePointのファイルを安全に操作でき、パソコンの環境に依存しない柔軟な自動化が可能になります。
仕組みとしては、まずユーザーがExcel Onlineの「自動化」タブでスクリプトを作成します。そのコードはクラウド上で保存され、Excel Onlineがコードを読み取り、ワークブックやワークシートに対して指示を実行します。つまり、ユーザーが書いたコードが「クラウド上のExcel」に命令する形になっています。
また、TypeScriptはミスに強いという特徴があります。たとえば「セルが見つからない」「型が違う」というエラーも事前に教えてくれるので、安全にスクリプトを書けます。プログラミング初心者でもトラブルを避けられるため、業務効率化の第一歩としてとても扱いやすい言語です。
3. Office Scripts開発の基本環境(Excel Onlineとコードエディタ)
Office ScriptsはExcel Onlineで動くため、事前にソフトをインストールする必要はありません。ブラウザさえあればすぐに始められます。「自動化」タブにあるコードエディタでは、TypeScriptをそのまま書けるだけでなく、候補表示や補完機能も備わっているため、初心者でも簡単に操作できます。
エディタ上にはExcelの操作メニューが揃っており、どのセルや範囲に対して何をするかが分かりやすいように設計されています。初めて触る人でも「ここにコードを書くんだな」と直感的に理解できます。また、書いたスクリプトはワンクリックで実行でき、実際にExcelがどう変化するかを確認しながら学習できます。
4. TypeScriptの基本構造を知っておこう(初心者向け)
Office ScriptsはTypeScriptをベースに書かれます。TypeScriptと聞くと難しそうですが、実際には「Excelの操作を英語で説明する」ような感覚で書けます。コードは必ずmain関数から始まり、その中に操作内容を書きます。
たとえば「A1に文字を書き込む」というスクリプトは次のようになります。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
sheet.getRange("A1").setValue("こんにちは");
}
このように、TypeScriptは「アクティブなシートを取得し、A1セルに値を入れる」という流れをそのまま書いているだけです。英語の命令書のように読めるため、初心者でも理解しやすいのが特徴です。
5. Excelのワークブックとワークシートの動き
TypeScriptでExcelを自動化する場合、最初にワークブック(Excelファイル)とワークシート(シート)を操作します。ワークブックはExcel全体のファイルのこと、ワークシートはその中のページのようなものです。Office Scriptsでは、これらを簡単に取得して動かせます。
たとえば、新しいシートを追加したり、既存のシート名を変更したりする処理は数行のコードで書くことができます。これにより、複数のデータを扱う作業や、毎日更新する資料の作成などが一気に楽になります。
6. セルや範囲を操作する基本の考え方
Excel自動化でよく使うのがセルや範囲(レンジ)の操作です。セルの値を取得したり、計算結果を書き込んだり、背景色を変えたりといった処理が可能です。Office Scriptsではこれらを関数の指示として読み込み、Excelに反映させます。
初心者でも分かりやすいのは、「getRange」でセルを指定し、「setValue」で値を書き込むという流れです。これは普段Excelを使っている操作とほぼ同じなので、プログラミングに慣れていない人でもすぐに理解できます。
7. テーブル操作とデータ管理の自動化
Office Scriptsでは、Excelのテーブル(ListObject)も簡単に操作できます。テーブルはデータを整理するための機能で、行の追加や削除、集計、ソートなどが頻繁に行われます。手作業だと時間がかかるこれらの作業も、スクリプトなら一瞬で完了します。
テーブルの操作は、業務効率化において特に重要なポイントです。毎日更新する売上データや、レポートの作成など、大量の情報を扱う場面で非常に便利です。
8. グラフ生成や編集も自動化できる
Office Scriptsを使えば、Excelで作るグラフも自動で生成できます。グラフの種類を選び、元データを指定するだけで自動的に作成され、レポートの資料作成を効率化できます。
さらに、グラフのタイトルを変更したり、色を変えたりといった編集作業もコードで指定できるため、毎日の定型業務を確実に時短できます。
9. 条件付き書式の設定を自動化する
条件付き書式はExcelでよく使う機能で、特定の条件に一致したセルに色をつけたり、文字のスタイルを変えたりできます。Office Scriptsでは、これらの条件付き書式を自動で設定できます。
たとえば「売上が一定以下のセルを赤くする」といったルールも、コードとして一度作っておけば、毎回の入力を自動でチェックしてくれます。同じ作業を繰り返す必要がなくなり、作業ミスも減らせます。
10. OneDriveやSharePointのファイルを扱う
Office Scriptsはクラウドと深く連携しており、OneDriveやSharePointに保存されたExcelファイルをそのまま操作できます。これにより、複数のメンバーで共有しているファイルでも自動化が活用できます。
また、ファイルの読み込みや保存もスクリプトで制御できるため、レポートの自動保存やバックアップなどにも応用できます。Excel Onlineとクラウドが組み合わさることで、自動化の幅がさらに広がります。
まとめ
ここまで見てきたように、Office ScriptsはExcel Onlineで日常的に行っている繰り返し作業を自動化できる非常に便利な仕組みです。TypeScriptで書かれたスクリプトがクラウド上のExcelに直接命令を送り、セルの更新やデータ処理をすばやく実行できるため、作業時間の短縮だけでなく、入力ミスの防止や業務品質の向上にも大きく貢献します。 特に、Excelのワークブック操作、ワークシート管理、テーブル処理、グラフ生成、条件付き書式の自動設定など、多くの機能が直感的なコードで扱える点は、初心者から実務経験者まで幅広いユーザーにとって魅力的です。クラウド環境で動くため、パソコンの環境に依存せず、OneDriveやSharePointとの連携も自然に行え、共有ファイルに対しての自動処理にも適しています。 また、TypeScriptはエラーを事前に検出してくれる仕組みが備わっているため、安全にExcel自動化のロジックを構築できます。複雑な処理も少しずつ積み上げることで実現でき、業務に応じた柔軟なスクリプト作成が可能です。日々のデータ更新や定型レポートの作成、テーブルの整理、条件付き書式でのデータチェックなど、様々なシーンで活用できます。 以下に、今回の内容を踏まえた簡単なサンプルコードを示します。Excelのセル操作やシート処理でどのようにOffice Scriptsが役立つのかを再確認してみましょう。
サンプルプログラムで振り返り
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
sheet.getRange("A1").setValue("学んだ内容の振り返り");
sheet.getRange("B2").setValue("Excel自動化の基本を理解したよ");
sheet.getRange("C3").setValue("TypeScriptで操作すると便利");
const newSheet = workbook.addWorksheet("まとめのシート");
newSheet.getRange("A1").setValue("新しいシートも自動で作成できます");
}
このサンプルでは、複数セルへの値入力、新しいシートの作成という基本的な操作をまとめています。実際にExcel Online上でスクリプトを動かしてみれば、コードの内容がどのように反映されるかが直感的に理解できます。こうした積み重ねが自動化の幅を広げ、日々の業務で活躍するスキルにつながっていきます。 今後は、より複雑なデータ処理やテーブル操作、条件付き書式の高度な設定などにも挑戦することで、Excelの自動化としてのOffice Scriptsの魅力をさらに実感できるでしょう。
生徒
「Office Scriptsの仕組みがだいぶ分かってきました!TypeScriptで書くと、Excelの操作がこんなに分かりやすくなるとは思いませんでした。」
先生
「そのとおりです。セル操作、シート作成、テーブル更新など、普段のExcel作業の多くがシンプルな命令で実行できます。実際に手を動かしながら学ぶと理解が深まりますよ。」
生徒
「クラウドで動くっていうのも便利ですね。OneDriveやSharePointのファイルもそのまま自動化できるのは、仕事でも使えそうです。」
先生
「まさにその通りです。共有ファイルの更新を自動化することで、作業ミスを防いだり、チーム全体の効率を上げたりできます。Office Scriptsはクラウド時代に合った自動化手段なんです。」
生徒
「次はテーブル操作や条件付き書式も試してみたいです。レポート作成がかなり楽になりそうです!」
先生
「そうですね。繰り返し使う仕組みほど自動化が効果を発揮します。少しずつできることを増やしていきましょう。」