Office Scriptsの基本!Excel自動化で使う関数とコードの書き方
生徒
「Office Scriptsって、本当に業務の役に立つんですか?成功事例みたいなものがあるとイメージしやすいんですが…」
先生
「もちろんありますよ。いろいろな企業や学校で、手作業だったExcel作業を自動化して効率化しています。」
生徒
「どんなふうに役立っているんですか?実際の例が知りたいです!」
先生
「それでは、Office Scriptsの成功事例をまとめて紹介していきますね。初心者でも理解しやすいように説明します。」
1. 日次レポート作成を自動化して残業が減った例
多くの職場で「毎日同じExcelレポートを作る」というアナログな業務が存在します。手作業でコピー・貼り付け・集計を行うと時間がかかり、ミスも起こりやすいものです。Office Scriptsを使うことで、この日次レポート作業を数秒で完了させる仕組みを作れます。
実際ある企業では、毎日45分かかっていた作業が、自動化後は数秒で完了するようになりました。担当者は「ボタンを押した瞬間にレポートが完成するのが驚き」と話しています。
以下は、簡易的なレポート生成のイメージがつかめるサンプルです。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const today = new Date().toLocaleDateString();
sheet.getRange("A1").setValue("日次レポート (" + today + ")");
sheet.getRange("A2").setValue("売上合計");
}
この仕組みをさらに拡張すると、Power Automateと連携して毎朝自動生成し、そのままTeamsへ送信することもできます。アナログ作業がデジタルに置き換わることで、作業者のストレスが減り、働き方も改善されます。
2. 大量データの整理を自動化して業務時間を大幅削減した例
Excelでは、数百〜数千件のデータを処理することがあります。手動で並べ替えたり、不要な行を削除したりする作業は、非常に大変で時間もかかります。ある会社では、毎週3時間かかっていたデータ整理をOffice Scriptsで完全自動化しました。
自動化後は、スクリプトを実行するだけでデータが整い、レポートに使える状態になります。初心者でも、次のようなコードで「空白行の削除」や「並べ替え」ができます。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const range = sheet.getUsedRange();
range.getSort().apply([{ key: 1, ascending: true }]);
}
このような単純作業ほど自動化の効果が大きく、「作業時間が半分以下になった」という利用者の声も多くあります。
3. 学校現場での提出物管理に役立った例
学校や教育現場でもOffice Scriptsは活用されています。特に、提出物の管理や点数の集計など、毎週必ず発生する作業は自動化しやすい分野です。ある中学校では、先生が毎週行っていた点数の集計をスクリプトで自動化しました。
それまでは、先生がひとつひとつ点数を確認し、Excelに入力して合計を出していましたが、自動化後はボタン一つで完了します。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const values = sheet.getRange("B2:B40").getValues();
let total = 0;
for (let i = 0; i < values.length; i++) total += Number(values[i][0]);
sheet.getRange("C1").setValue("合計点: " + total);
}
「ミスがなくなり、生徒対応の時間が増えた」と喜ばれています。教育現場でもデジタル化が進み、Office Scriptsはその手助けをしています。
4. チームで使うExcelを統一して品質向上した例
複数人が同じExcelファイルを触る場合、「人によって作り方が違う」「書式がずれる」という問題がよく起こります。ある企業では、Office Scriptsでフォーマット統一を自動化し、誰が操作しても同じ品質を保てるようにしました。
書式の統一は、見た目だけでなく、読みやすさ・使いやすさにもつながるため、チーム全体の作業効率が大幅に向上したそうです。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
sheet.getRange("A1:D1").getFormat().getFill().setColor("#DDEEFF");
}
レイアウトの乱れがなくなることで、資料の品質が安定し、確認作業のストレスも少なくなります。
5. 月次集計をPower Automateと連携させて完全自動化した例
月末になると、多くの企業で行われる「月次集計」。この作業もExcelが中心で、担当者の負担が大きい分野です。Office ScriptsとPower Automateを使うことで、この集計業務を完全に自動化した例があります。
自動化後は、SharePointに新しいファイルがアップされた瞬間にスクリプトが動き、結果を自動でTeamsへ送信します。人が作業する必要がなく、ミスゼロで毎回同じ品質を保てます。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const data = sheet.getUsedRange().getValues();
sheet.getRange("F1").setValue("集計開始");
}
この仕組みを導入した企業では、「締め作業の時間が半分以下になった」と高く評価されています。
6. 手作業で行っていたチェック作業を自動化した例
Excelには「数字が入っているか」「空欄がないか」を確認するチェック作業があります。これを手動で行うと時間がかかり、抜け漏れも発生しがちです。ある会社では、チェック作業の自動化にOffice Scriptsを採用しました。
スクリプトによるチェックは高速でミスがなく、人が確認するよりもはるかに効率的です。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const value = sheet.getRange("A1").getValue();
if (value === "" || value === null) {
sheet.getRange("B1").setValue("未入力があります");
} else {
sheet.getRange("B1").setValue("入力済みです");
}
}
チェック漏れがなくなることで、作業の正確性が向上し、業務全体の品質が高まります。
7. 小さな自動化が積み重なって大きな成果になった例
多くの成功事例に共通しているのは、「最初は小さな自動化から始めた」という点です。最初はセルに文字を書くだけ、次に行数を数える、次に集計する…と、少しずつステップアップしています。
Office Scriptsは初心者でも扱いやすく、毎日の作業を一つずつ自動化していくだけでも、大きな時間削減につながります。「毎日数分の時短が1年で大きな成果につながった」という声も少なくありません。
以下は、最も基本的な「セルへ文字を書き込む」サンプルです。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
sheet.getRange("A1").setValue("こんにちは");
}
この小さなスクリプトから始めて、大きな自動化へと発展していきます。これこそが、Office Scriptsが選ばれている理由のひとつです。