Office Scriptsの基本文法とAPI基礎!Worksheet(シート)の取得と操作で学ぶExcel自動化
生徒
「Excelってシートがたくさんありますよね。Office Scriptsでは、どのシートを操作するんですか?」
先生
「Office Scriptsでは、Worksheetという仕組みを使って、操作したいシートを指定します。」
生徒
「今開いているシートとか、名前がついているシートも選べるんですか?」
先生
「はい。今表示されているシートも、名前で指定したシートも自由に操作できます。」
生徒
「パソコン初心者でも分かりますか?」
先生
「ノートのページをめくる感覚で説明しますから安心してください。」
1. Office Scriptsとは?
Office Scriptsは、Excel Onlineで使える自動化スクリプトです。Excelの「自動化」タブからスクリプトを実行でき、セルの値の変更、シートの作成、シート名の変更など、毎回手作業で行っていたExcel操作を自動で行えます。
「スクリプト」とは、パソコンにやってほしい作業を順番に書いたメモのようなものです。Office Scriptsでは、TypeScript(タイプスクリプト)という言語を使いますが、英語が少し読めれば問題ありません。
Excel自動化、Office Scripts入門、Excel Online 自動操作といったキーワードで検索している初心者の方にとって、最初の一歩としてとても相性の良い仕組みです。
2. Worksheet(ワークシート)とは何か?
Worksheet(ワークシート)とは、Excelの下に並んでいる「Sheet1」「Sheet2」と書かれた紙のことです。日本語では、一般的に「シート」と呼ばれています。
Excelのファイル全体をワークブック、その中に入っている1枚1枚の紙をワークシートと考えると分かりやすいです。Office Scriptsでは、まずこのワークシートを取得しないと、セルに文字を書いたり、名前を変えたりできません。
つまり、Worksheetの取得は、Excel自動化のスタート地点になります。
3. 今開いているシートを取得する方法
一番よく使うのが、「今表示されているシート」を取得する方法です。難しそうに見えますが、「今のシートをください」とお願いしているだけです。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
sheet.getRange("A1").setValue("はじめてのOffice Scripts");
}
workbookは、Excelファイル全体を表します。getActiveWorksheet()は、「今選ばれているシートを取る」という意味です。
このコードを実行すると、今見ているシートのA1セルに文字が表示されます。人がキーボードで入力する代わりに、プログラムが代行してくれているイメージです。
A1セルに「はじめてのOffice Scripts」と表示される
4. シート名を指定して取得する
Excelには複数のシートがあることが多いです。その場合、「この名前のシートを使いたい」と指定することができます。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getWorksheet("売上表");
sheet.getRange("A1").setValue("売上データ開始");
}
getWorksheet("売上表")は、「売上表という名前のシートを探す」という意味です。シート名は、Excelに表示されている名前と完全に同じにする必要があります。
名前が違うとエラーになりますので、コピーして使うと安心です。
5. 新しいWorksheet(シート)を作成する
Office Scriptsでは、新しいシートを自動で追加することもできます。これは、毎月の資料作成や日付ごとのデータ管理でとても便利です。
function main(workbook: ExcelScript.Workbook) {
const newSheet = workbook.addWorksheet("新規シート");
newSheet.getRange("A1").setValue("新しく作られたシートです");
}
addWorksheetは、「新しい紙を1枚追加する」イメージです。人が右クリックして「挿入」を選ぶ操作を、コードで行っています。
6. Worksheetの名前を変更する
すでにあるシートの名前を変更したい場合も、Office Scriptsで簡単にできます。手作業だとダブルクリックが必要ですが、コードなら一行です。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
sheet.setName("作業用シート");
}
setNameは、「名前を設定する」という意味です。英単語の通りの動きをするので、意味を想像しながら読むと理解しやすくなります。
7. Worksheet操作を学ぶ重要性
Office ScriptsでExcelを自動化する場合、必ず「どのシートを操作するか」を意識する必要があります。シートを正しく取得できないと、セル操作やデータ入力もできません。
最初は「Worksheet」「Workbook」「Range」といった言葉に戸惑うかもしれませんが、これはExcelの画面をそのまま言葉にしたものです。
Office Scripts 初心者、Excel 自動化 入門、Worksheet 操作といったキーワードで調べている方は、まずこのシート操作をしっかり理解することが、失敗しない近道になります。