Office Scriptsの基本!Excel自動化で使う関数とコードの書き方
生徒
「Excelを毎日使っているんですが、同じ作業ばかりで大変です。Office Scriptsって何ができるんですか?」
先生
「Office Scriptsを使うと、Excelのセルや範囲を自動で操作できます。人がマウスでやる作業を、コードに任せられるんですよ。」
生徒
「セルや範囲って、A1とかB2のことですよね?それをどうやって取るんですか?」
先生
「まさにそこが基本です。まずはセル・レンジの取得方法から、ゆっくり説明していきましょう。」
1. Office Scriptsとは?
Office Scripts(オフィス スクリプト)は、Excel Onlineで使える自動化機能です。Excelを開いてボタンを押すだけで、事前に作った処理を一気に実行できます。たとえば「セルに文字を書く」「計算結果を別のセルに入れる」「決まった範囲をまとめて取得する」といった作業を、人の代わりにExcel自身がやってくれます。
プログラミング未経験の人でも、Excelの操作をそのまま文章にしたようなコードなので、少しずつ慣れていけば理解できます。Office ScriptsではTypeScriptという言語を使いますが、難しい文法は最初は気にしなくて大丈夫です。
2. セルとレンジの違いを知ろう
Excelには「セル」と「レンジ(範囲)」という考え方があります。セルはA1やB2のように、1マスだけを指します。一方レンジは、A1からC3のように、複数のセルをまとめたものです。
身近な例でいうと、セルはノートの1マス、レンジはノートの1行や1ページのようなものです。Office Scriptsでは、このセルやレンジを取得してから、値を読んだり書いたりします。
3. セルを1つ取得する基本の書き方
まずは一番シンプルな「セルを1つ取得する方法」です。Office Scriptsでは、シートを取得してから、その中のセルを指定します。ここでいう「取得」とは、「Excelにあるセルをコードでつかむ」という意味です。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const cell = sheet.getRange("A1");
cell.setValue("はじめてのOffice Scripts");
}
このコードでは、A1セルを取得して、文字を書き込んでいます。getRangeは「この場所のセルや範囲をください」という命令です。A1と書けば、A1セルだけを指定できます。
A1セルに「はじめてのOffice Scripts」と表示される
4. レンジ(複数セル)を取得する方法
次は、複数のセルをまとめて取得する方法です。たとえばA1からA3までの縦3つのセルを一気に扱うことができます。レンジを使うと、まとめて値を設定したり、まとめて読み取ったりできて便利です。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const range = sheet.getRange("A1:A3");
range.setValues([
["りんご"],
["みかん"],
["バナナ"]
]);
}
ここではA1からA3までのレンジを取得しています。setValuesは、複数の値を一度に書き込むときに使います。箱にまとめて物を入れるようなイメージで考えると分かりやすいです。
A1〜A3に果物の名前が縦に表示される
5. セルの値を取得して使う
セルやレンジは、書き込むだけでなく「中身を読む」こともできます。これを値の取得といいます。たとえば、A1に入っている数値を取り出して、別のセルに使うことができます。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const value = sheet.getRange("A1").getValue();
sheet.getRange("B1").setValue(value);
}
getValueは「このセルの中身を教えて」という意味です。人が目で見て数字を確認する代わりに、コードが自動で値を取り出してくれます。
A1の内容がそのままB1に表示される
6. レンジを使った簡単な計算
Office Scriptsでは、セルから取得した数値を使って計算もできます。たとえば、2つのセルの数値を足し算して、結果を別のセルに表示することが可能です。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const a = sheet.getRange("A1").getValue() as number;
const b = sheet.getRange("A2").getValue() as number;
sheet.getRange("A3").setValue(a + b);
}
「as number」は、数値として使いますよ、という目印です。電卓で数字を足すような感覚で、Excelの中身を使って計算できます。
A1とA2の合計がA3に表示される
7. よく使うセル・レンジ操作の考え方
初心者のうちは、「どのセルを使うのか」「1つなのか複数なのか」を意識するだけで十分です。Office Scriptsでは、必ず取得 → 操作という流れになります。
まずセルやレンジを取得し、そのあとで値を読む、書く、計算するといった処理を行います。これは、紙の書類を机に出してから書き込むのと同じ流れです。
Excel自動化、Office Scripts、セル取得、レンジ操作といったキーワードは、これから何度も出てきますが、最初は「Excelをコードで触る方法」と思っておけば問題ありません。