Office Scriptsの基本文法とAPI基礎!Excelオブジェクトモデルをやさしく理解してExcel自動化を始めよう
生徒
「Office Scriptsの説明を見ていると、WorkbookとかWorksheetとか、聞いたことのない言葉がたくさん出てきます…」
先生
「それはExcelオブジェクトモデルと呼ばれる考え方ですね。Excelの中身を部品として考える仕組みです。」
生徒
「部品…ですか?Excelがそんなふうに分かれているなんて知りませんでした。」
先生
「家やノートに例えると、とても分かりやすいですよ。今日はそこを中心に説明します。」
生徒
「パソコンをほとんど触ったことがなくても理解できますか?」
先生
「もちろんです。難しい言葉は全部、かみくだいて説明します。」
1. Excelオブジェクトモデルとは何か
Office ScriptsでExcelを自動化するときに必ず出てくる考え方が、Excelオブジェクトモデルです。これは、Excelを構成している要素を、プログラムで扱える形に整理したものです。Excel全体を一つの大きな箱だとすると、その中にワークブック、ワークシート、セル、表などが順番に入っているイメージになります。プログラミング未経験の人でも、この構造を理解することで、Excelの操作をコードに置き換えやすくなります。
2. ワークブックはExcel全体を表す
ワークブックとは、Excelファイルそのものを指します。Office Scriptsでは、最初にワークブックを受け取り、そこからシートやセルにアクセスします。人がExcelを開くときに「このファイルを開く」と考えるのと同じで、プログラムでも最初にExcel全体をつかむ必要があります。Office Scriptsでは、このワークブックがすべての操作の出発点になります。
function main(workbook: ExcelScript.Workbook) {
const wb = workbook;
}
3. ワークシートはノートのページ
ワークシートは、Excelの下に並んでいるシートのことです。ノートに例えると、一枚一枚のページがワークシートになります。Office Scriptsでは、作業したいシートを指定してからセル操作を行います。現在表示されているシートを取得する方法は初心者でも理解しやすく、最初に覚える操作として最適です。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
sheet.getRange("A1").setValue("シート操作の開始");
}
4. セルとレンジの考え方
セルはExcelのマス目一つ一つを指します。A1やB2のように名前が付いている場所です。レンジとは、複数のセルをまとめた範囲のことです。プログラムでは、一つのセルも、複数のセルも同じようにレンジとして扱うため、まとめて操作できます。これは手作業でドラッグして選択する感覚とよく似ています。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
sheet.getRange("A1:C1").setValue("まとめて入力");
}
5. 値と表示は別物として考える
Excelオブジェクトモデルでは、セルに入っている値と、見た目の表示を分けて考えます。例えば、数値が入っていても、表示形式によって見え方が変わります。Office Scriptsでは、値を設定する、取得するという操作を明確に書くことで、意図しない動作を防ぐことができます。初心者のうちは「値を書き込む」という意識を強く持つと理解しやすくなります。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const cell = sheet.getRange("B2");
cell.setValue(100);
}
6. オブジェクトを順番にたどる意識
Office Scriptsでは、いきなりセルを操作するのではなく、ワークブックからワークシート、そしてセルという順番でアクセスします。この流れは、Excelオブジェクトモデルの基本です。道順をたどるように操作することで、どこを動かしているのかが分かりやすくなり、コードの読み書きも楽になります。
7. Excel自動化とオブジェクトモデルの関係
Excelの自動化とは、人が行っていた操作をプログラムに任せることです。そのためには、Excelの構造を正しく理解する必要があります。Excelオブジェクトモデルは、そのための地図のような存在です。Office Scriptsを使えば、毎日の入力作業やチェック作業を自動化でき、作業時間を大きく減らすことができます。初心者でも、この考え方を理解することで、Excel自動化の第一歩を踏み出せます。