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をコードで触る方法」と思っておけば問題ありません。
まとめ
Office Scriptsの基本を振り返る
Office Scriptsは、Excel自動化を実現するための非常に強力な機能です。これまで見てきたように、セル取得やレンジ操作といった基本的な考え方を理解することで、日々の繰り返し作業を効率よく処理できるようになります。特にExcel作業の効率化や業務自動化を目指す人にとって、Office Scriptsは欠かせないスキルとなっていきます。
まず重要なのは、「セル」と「レンジ」の違いをしっかり理解することです。セルは一つのマスを表し、レンジは複数のセルをまとめた範囲です。この違いを理解することで、どのようにデータを扱うかが明確になります。Excel自動化では、単一の値を扱うのか、それとも複数のデータを一括処理するのかによって、コードの書き方が変わります。
また、Office Scriptsでは必ず「取得してから操作する」という流れになります。これは非常に重要なポイントです。セル取得やレンジ取得を行った後に、値の取得や書き込みを行うことで、Excelの操作をコードで再現できます。この流れを意識するだけでも、コードの理解が一気に進みます。
さらに、getValueやsetValue、setValuesといった関数の使い分けも重要です。単一セルにはsetValue、複数セルにはsetValuesを使うことで、効率よくデータ操作ができます。特にレンジ操作は、Excel自動化において頻繁に使用されるため、しっかりと理解しておくことで応用の幅が広がります。
計算処理においては、セルから取得した値を数値として扱うことが大切です。「as number」を使うことで、文字列ではなく数値として計算できるようになります。これにより、合計や平均などの計算処理をスムーズに実装できます。
Office Scriptsは、Excel Onlineと連携して動作するため、クラウド環境での業務効率化にも適しています。例えば、毎日の売上集計やデータ整理などの定型業務を自動化することで、作業時間の短縮やヒューマンエラーの削減につながります。Excel自動化や業務効率化という観点でも、非常に実用的な技術といえるでしょう。
サンプルプログラムで総復習
ここでは、セル取得、レンジ操作、値の取得、計算処理をすべて組み合わせたサンプルコードを紹介します。基本的な処理を一通り確認することで、理解がより深まります。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
// セルに値を設定
sheet.getRange("A1").setValue(10);
sheet.getRange("A2").setValue(20);
// 値を取得して計算
const a = sheet.getRange("A1").getValue() as number;
const b = sheet.getRange("A2").getValue() as number;
const total = a + b;
// 結果を出力
sheet.getRange("A3").setValue(total);
// レンジにまとめて書き込み
sheet.getRange("B1:B3").setValues([
["合計"],
["計算結果"],
[total]
]);
}
A1に10、A2に20が入力され、A3に30が表示される
B1からB3には合計と計算結果が表示される
このように、Office Scriptsではセル操作とレンジ操作を組み合わせることで、実務に近い処理を簡単に実装できます。Excel自動化を実現するためには、これらの基本パターンを繰り返し使うことが重要です。
実務で役立つポイント
実際の業務では、単純なセル操作だけでなく、データの整形や条件分岐なども組み合わせて使います。そのため、まずは今回学んだ「セル取得」「レンジ取得」「値の取得」「値の設定」という基本をしっかり身につけることが大切です。
Excel自動化、Office Scripts、業務効率化、データ処理といったキーワードは、今後のITスキルとして非常に重要になっていきます。繰り返しコードを書くことで、自然と理解が深まり、応用力も身についていきます。
生徒
「Office Scriptsって最初は難しそうでしたが、セルを取ってから操作するだけなんですね。」
先生
「その通りです。セル取得とレンジ操作の流れが分かれば、Excel自動化の基本はほぼ理解できています。」
生徒
「getValueとsetValueも使い分けが大事ですね。値を読むか書くかで違うんですね。」
先生
「よく気づきましたね。さらにsetValuesを使えば、複数データも一括で処理できます。」
生徒
「計算もできるので、売上の集計とかも自動化できそうです。」
先生
「まさにその用途が多いです。Excel自動化と業務効率化の中心的な技術なので、これからどんどん活用していきましょう。」