Office Scriptsの基本!Excel自動化で使う関数とコードの書き方
生徒
「Office ScriptsでExcelの操作を自動化したいんですが、どんなコードを書けばいいんですか?」
先生
「Office ScriptsはTypeScriptという言語を使ってExcelのセルやシートを操作できますよ。簡単なコードで Excel を動かせます。」
生徒
「どんなふうにExcelを自動化するんですか?」
先生
「今日は、RPAとの違いや、Office Scriptsと併用するメリットも含めてわかりやすく説明していきますね。」
1. Office Scriptsとは?(Excel Onlineで動く自動化スクリプト)
Office Scriptsは、Excel Onlineで動くクラウド型の自動化スクリプトです。Excelの「自動化」タブからスクリプトを実行し、セルの書き込み、シート作成、表(テーブル)更新など、多くの作業をボタンひとつで行えます。プログラミング未経験の人でも、普段のExcel操作をコードに置き換えるだけで自動化が実現します。
また、Office ScriptsはTypeScriptを使って書かれるため、読みやすく、間違いを自動で教えてくれる仕組みもあります。クラウドで動作するため環境差の影響も少なく、安定した処理が可能です。
2. RPAとは?(ロボットが人の代わりに操作する技術)
RPA(アールピーエー)は「Robotic Process Automation」の略で、パソコン上の操作を人の代わりにロボットが自動で行う技術です。画面上のクリック、Excelの開閉、Web操作など、人が行う一連の作業をそのまま再現できます。
特徴としては、目で見える画面をロボットが模倣することです。Excelを開き、セルをクリックし、ファイルをダウンロードして別のシステムにアップロードするなど、人間の動作を真似して進めます。そのため、プログラムの細かい操作を知らなくても業務自動化ができます。
一方で、画面の位置が変わる、ボタンの表示が違う、ネットワークの遅延があるなど、外部の影響を受けやすいという弱点があります。RPAは強力ですが、安定動作のためにはルール整備や画面の固定化などが必要となることもあります。
3. Office ScriptsとRPAの違いはどこにある?
Office ScriptsとRPAはどちらも業務自動化に役立ちますが、その動作原理は大きく異なります。ここでは違いを初心者でもわかりやすい例で解説します。
■ Office Scripts:Excelの中身に直接命令を送る自動化
Office ScriptsはExcel Onlineが持つAPI(操作の仕組み)を使って動作します。つまり、「セルA1に値を書け」「表を更新せよ」といった命令をExcel自体に渡しています。Excelの内部構造を直接操作するため、安定性が高く、画面が変わっても処理が崩れません。
例として、次のように直接セルを指定できます。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
sheet.getRange("B2").setValue("直接命令で動く処理");
}
■ RPA:画面を見て「人の代わりに操作する」自動化
RPAはExcelを開き、セルをクリックし、キーボードで入力するなど、人の操作を真似して動きます。そのため、画面の位置が変わると動作しないことがありますが、Excel以外のアプリやWebサイトも自動化できる広い万能性があります。
例えるなら、Office Scriptsは「Excelの内部に直接話しかける」、RPAは「Excelを人と同じように触る」という違いがあります。
4. Office Scriptsが優れているポイント
Office Scriptsには、RPAにはないExcel特化の強みがあります。
● 安定した実行(画面に依存しない)
画面を見て操作しないため、位置ズレやデザイン変更の影響を受けません。
● クラウド上で動作するため環境差がない
Excel Onlineが実行するため、PCの性能やExcelバージョンによって結果が変わりません。
● 実行速度が速い
画面操作より直接命令の方が高速に処理できます。
● チームで共有しやすい
スクリプトがクラウドに保存されるため、複数のメンバーで同じ自動化を利用できます。
5. RPAが優れているポイント
RPAにもOffice Scriptsにはないメリットがあります。
● Excel以外のアプリも操作できる
ブラウザ、PDF、基幹システムなど、画面上の操作ならほぼ何でも自動化できます。
● 操作記録で簡単にシナリオを作れる
実際に人が操作した内容を記録して、ロボットに再現させることができます。
● 複雑な業務フロー全体をまとめて自動化できる
「Excel → Web入力 → PDF保存 → メール送信」などの複合的な流れも自動化可能です。
6. Office ScriptsとRPAは併用でさらに効果を発揮する
Office ScriptsとRPAは、どちらか一方が優れているわけではなく、併用することで圧倒的な効率を生み出します。両者の「得意分野」を活かすことで、業務全体の自動化レベルが大幅に向上します。
■ 組み合わせ例①:Excel内部処理をOffice Scripts、周辺操作をRPA
例えば、次のような業務があります。
・Excelで集計 → Webシステムに入力 → 結果をPDFで保存
この場合、Excel部分はOffice Scriptsで高速・安定に処理し、Web画面操作やPDF保存はRPAが担当することで、全体の安定性と効率が向上します。
■ 組み合わせ例②:RPAからOffice Scriptsを呼び出す
RPAは外部アプリの連携を得意とするため、RPAのシナリオの中でOffice Scriptsを実行し、必要なデータをExcel Online側で加工することもできます。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getWorksheet("データ");
const last = sheet.getUsedRange().getLastRow();
sheet.getRange(`A${last+1}`).setValue("RPA連携で追加");
}
このように、RPAは「外側の流れ」を作り、Office Scriptsは「Excel内部の正確な処理」を担当することで、ミスの少ない強力な自動化構成になります。
7. 併用のメリット(Excel自動化の最適解)
Office ScriptsとRPAを併用することで、次のようなメリットが生まれます。
● Excel内部処理が高速・安定する
● Web操作や他アプリ操作も自動化できる
● 全体的な自動化の品質が上がる
● 作業時間が大幅に削減される
● 担当者が変わっても作業手順が統一される
Excelに強いOffice Scriptsと、幅広い操作を担うRPAを組み合わせることで、これまで難しかった業務フロー全体の自動化が現実的になります。クラウドの強みを活かしながら、効率的なExcel業務を実現できます。
まとめ
ここまで、Office ScriptsとRPAがどのようにExcel業務を支え、クラウド時代の自動化を実現していくのかを、具体例を交えながら学んできました。振り返ってみると、両者は目的こそ似ているものの、その得意分野は大きく異なり、役割を上手に分担することで高い効果を生み出すことが分かります。 Office Scriptsは、Excel Onlineの内部構造に直接アクセスできるという強みがあり、セルやワークシート、テーブルなどを正確かつ高速に操作できます。クラウド上で実行されるため、どのパソコンから動かしても結果が同じであり、環境差による不具合が発生しにくいことも大きな特徴です。Excel内部の処理を安定させたい場合には、Office Scriptsが最も頼れる存在といえるでしょう。 一方、RPAはExcelに限らず、Web操作・PDF処理・基幹システムとの連携など、画面上の操作をそのまま模倣できる柔軟性が魅力です。業務全体の流れを一つのシナリオとして扱えるため、Excelだけでは完結しない一連の作業をまとめて自動化できます。つまり、RPAは「外側の動き」を広く担当し、Office Scriptsは「Excel内部の正確な処理」を担う存在として考えると理解しやすくなります。 実際の業務でも、Excelで集計したデータをWebシステムに入力したり、PDF化してメール配信したりする場面は珍しくありません。こうした流れの中でエラーを減らし、品質を維持しながら効率化したいのであれば、Office ScriptsとRPAをうまく併用する方法が非常に効果的です。クラウドで保存されたExcelファイルを正確に加工し、RPAが全体の流れを組み立てて処理を自動化することで、業務全体のスピードと再現性が大きく向上します。 また、Office ScriptsはTypeScriptを基盤としているため、コードの読みやすさやトラブルの事前検出といった利点があり、初心者でも段階的に学びやすい点も魅力です。RPAの操作記録と同じように、Office Scriptsにも「アクションの記録」があるため、最初はスクリプトを自分で書かずとも動きを理解できます。Excelに触れたことがある人なら、操作の流れをそのまま命令として書けるので、自然とスクリプト作成が身についていきます。 以下に、今回学んだ内容を総合的に整理するため、Office ScriptsとRPAの併用をイメージしたサンプルスクリプトを掲載します。Excel内部の処理をスクリプト化し、その結果が業務全体にどのように活かされるかの参考にしてください。
Office Scriptsで行う内部処理のサンプル
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
// シートに処理ログを書き込み
sheet.getRange("A1").setValue("自動化処理の開始");
sheet.getRange("A2").setValue("RPA連携とOffice Scriptsの実践");
// データ範囲の合計計算
const dataRange = sheet.getRange("B5:B20").getValues();
let total = 0;
dataRange.forEach(v => total += Number(v));
sheet.getRange("C1").setValue("合計値");
sheet.getRange("C2").setValue(total);
// 新しいシートを作成して連携用のデータを書き込み
const exportSheet = workbook.addWorksheet("連携データ");
exportSheet.getRange("A1").setValue("RPAに渡す合計値");
exportSheet.getRange("B1").setValue(total);
// 処理終了ログ
sheet.getRange("A3").setValue("自動化処理が完了しました");
}
このスクリプトは、Excel内部での集計処理と連携データの作成を自動化する例です。RPAがこのシートを受け取り、Web入力やPDF生成などの操作をそのまま続けて担当すれば、Excelと外部システムの両方を巻き込んだ自動処理がスムーズに実行できます。Office ScriptsとRPAを併用するメリットが実感しやすい実例といえるでしょう。 Excel業務を軸にした自動化では、正確性・再現性・速度といった要素が求められます。その条件を満たしながら、クラウド環境で安定した運用を実現できるOffice Scriptsは、これからの働き方において欠かせない要素となっていくはずです。今後は、業務の流れ全体を俯瞰し、「Excel内の処理をOffice Scripts」「外部の操作をRPA」という役割分担を意識することで、より効率的でミスのない自動化を実現できるでしょう。
生徒
「Office ScriptsとRPAの違いがようやく理解できました!Excelの内部を直接操作できるのは本当に強力ですね。」
先生
「そうでしょう。Excelの特性を知り尽くしたスクリプトだからこそ、安定して高速に処理できます。特にクラウド上のファイルを扱うときには欠かせない存在ですよ。」
生徒
「RPAと組み合わせることで、Excel以外の作業もまとめて自動化できるんですね。業務全体の流れがイメージしやすくなりました。」
先生
「その通りです。Office Scriptsは“Excel内部”、RPAは“外側の流れ”と覚えると良いでしょう。それぞれの得意分野を活かすことで、無理なく高品質な自動化ができます。」
生徒
「これなら初心者でも学びながら実務で活かせそうです。クラウドとの相性が良い理由もよく分かりました。」
先生
「少しずつ触りながら、できる範囲を広げていくと良いでしょう。どちらも力強い自動化の武器になりますよ。」