Office Scriptsの基本!Excel自動化で学ぶ関数の分割と再利用で読みやすさを向上させる方法
生徒
「Office ScriptsでExcel自動化のコードを書いてみたんですが、だんだん長くなって読みにくくなってきました…」
先生
「それは関数を分割していないのが原因かもしれません。処理ごとに関数を分けると、とても読みやすくなりますよ。」
生徒
「関数を分けるって、同じコードを何度も書かなくてよくなるってことですか?」
先生
「その通りです。今日は、Office Scriptsでの関数の分割と再利用を、初心者向けにやさしく説明します。」
1. Office Scriptsとは?
Office Scriptsは、Excel Onlineで使える自動化スクリプト機能です。Excelの「自動化」タブからスクリプトを実行でき、セルの値変更、計算、シート操作などをコードでまとめて実行できます。プログラミング未経験の方でも、Excelの操作をそのままコードに置き換える感覚で学べるのが特徴です。
Office ScriptsではTypeScriptという言語を使いますが、難しい理論よりも「読みやすさ」「分かりやすさ」がとても大切になります。
2. 関数とは何かをやさしく説明
関数とは、「決まった作業をひとまとめにしたもの」です。たとえば料理で言うと、「ご飯を炊く」「野菜を切る」といった作業を、それぞれ役割ごとに分けるイメージです。
プログラムでも同じで、Excelに文字を書く処理、数値を計算する処理などを関数として分けておくと、全体の流れがとても見やすくなります。
3. 関数を分割しないコードの例
まずは、関数を分けずにすべてをmain関数の中に書いた例を見てみましょう。一見シンプルですが、処理が増えると読みにくくなります。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
sheet.getRange("A1").setValue("名前");
sheet.getRange("B1").setValue("点数");
sheet.getRange("A2").setValue("田中");
sheet.getRange("B2").setValue(80);
}
このコードは短いですが、処理が増えていくと「どこで何をしているのか」が分かりにくくなります。
4. 関数を分割して読みやすくする
次に、処理ごとに関数を分割した例を見てみましょう。ここでは「見出しを書く処理」と「データを書く処理」を分けています。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
writeHeader(sheet);
writeData(sheet);
}
function writeHeader(sheet: ExcelScript.Worksheet) {
sheet.getRange("A1").setValue("名前");
sheet.getRange("B1").setValue("点数");
}
function writeData(sheet: ExcelScript.Worksheet) {
sheet.getRange("A2").setValue("田中");
sheet.getRange("B2").setValue(80);
}
関数名を見るだけで、何をしているコードなのかが分かります。これが関数分割の大きなメリットです。
5. 関数を再利用できるメリット
関数を分けておくと、同じ処理を何度も使い回せます。たとえば、別のシートでも同じ見出しを書きたい場合、同じ関数を呼ぶだけで済みます。
これは「コピー&ペーストを減らす」という意味でも重要です。同じコードを何か所にも書くと、修正が必要になったときに大変になります。
6. 再利用を意識した別パターンの例
次は、セルにメッセージを書く処理を関数にした例です。引数という仕組みを使って、内容を自由に変えられます。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
writeMessage(sheet, "A1", "処理開始");
writeMessage(sheet, "A2", "処理完了");
}
function writeMessage(
sheet: ExcelScript.Worksheet,
address: string,
message: string
) {
sheet.getRange(address).setValue(message);
}
このように関数を作っておくと、Excel自動化の幅が広がります。
7. 初心者が関数分割で意識するポイント
初心者の方は、「長くなってきたら関数に分ける」という意識を持つだけで十分です。最初から完璧に分ける必要はありません。
Office Scriptsでは、「main関数は全体の流れを書く場所」「細かい処理は関数に任せる」と考えると、コードが自然と整理されていきます。
8. 関数の分割と再利用はExcel自動化の基本
関数の分割と再利用は、Office ScriptsでExcel自動化を続けていくうえで欠かせない考え方です。コードが読みやすくなり、ミスも減り、後から見返したときにも安心できます。
難しいテクニックではなく、「作業を役割ごとに分ける」というシンプルな発想です。まずは小さな関数から始めて、少しずつ慣れていきましょう。