Office Scriptsの基本!Excel自動化で使う関数とコードの書き方
生徒
「Excelでシートを追加したり並べ替えたりするのって、毎回手作業で大変です。Office Scriptsを使うと自動でできるって聞いたんですが、本当に初心者でもできますか?」
先生
「できます。マウスでやっている操作を、そのまま文章にしたようなコードを書くイメージです。難しい計算や知識は必要ありません。」
生徒
「シートの追加や削除、順番を並べ替えるだけでもコードが必要なんですよね?」
先生
「はい。でも短いコードでできます。今日はExcelワークシート操作の中でも、シート追加・削除・並べ替えの自動化にしぼって見ていきましょう。」
1. Office Scriptsとは?Excel自動化の基本
Office Scriptsは、Excel Onlineで使える自動化の仕組みです。毎日同じ操作を繰り返している場合、その手順をコードとして保存し、ボタン一つで実行できます。Excelマクロと似ていますが、ブラウザ上で動き、OneDriveやSharePointと相性が良いのが特徴です。
初心者の方は「自動化」と聞くと難しそうに感じるかもしれません。しかし実際は「シートを追加する」「名前を変える」「不要なシートを消す」といった、普段のExcel操作を順番に書くだけです。Office ScriptsではTypeScriptという言語を使いますが、英語の命令文のように読めるため、パソコンに不慣れな人でも少しずつ理解できます。
2. Excelワークブックとワークシートの考え方
Excelには「ワークブック」と「ワークシート」という言葉があります。ワークブックはExcelファイル全体のこと、ワークシートは下に並んでいる「Sheet1」「Sheet2」といった1枚1枚の紙のような存在です。
Office Scriptsでは、まずワークブックを指定し、その中のワークシートを操作します。これは「本棚(ワークブック)から1冊のノート(ワークシート)を取り出して作業する」イメージです。この考え方を理解しておくと、シート追加や削除、並べ替えがとても分かりやすくなります。
3. ワークシートを自動で追加する方法
まずはシートの追加です。普段は「+」ボタンをクリックしますが、Office Scriptsではコードで追加できます。これは「新しい紙を1枚足す」と命令するだけです。
function main(workbook: ExcelScript.Workbook) {
const newSheet = workbook.addWorksheet("売上データ");
}
このコードでは、addWorksheetという命令を使っています。これは「ワークブックに新しいワークシートを追加する」という意味です。かっこの中に名前を書くことで、シート名も同時に決められます。名前を省略すると、自動で「Sheet○」のような名前になります。
初心者の方は「関数」「メソッド」といった言葉に戸惑うかもしれませんが、ここでは「決まった命令の名前」と考えて問題ありません。
4. 不要なワークシートを削除する自動化
次はシートの削除です。手動だと右クリックして削除しますが、これもOffice Scriptsで自動化できます。特に毎回同じ名前のシートを消したい場合に便利です。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getWorksheet("テスト用");
if (sheet) {
sheet.delete();
}
}
getWorksheetは「指定した名前のワークシートを探す」命令です。もし存在しない場合にエラーが出ないよう、if文で確認しています。if文とは「もし〜なら」という条件分岐で、プログラミングではとてもよく使われます。
このように条件を入れておくことで、Excel初心者でも安心して自動化できます。
5. ワークシートの順番を並べ替える方法
シートが増えてくると、順番がバラバラになりがちです。Office Scriptsでは、シートの位置もコードで変更できます。これは「この紙を一番左に移動して」と指示するイメージです。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getWorksheet("売上データ");
sheet.setPosition(0);
}
setPositionは、ワークシートの並び順を指定する命令です。0は一番左、1は左から2番目、というように数値で位置を決めます。数字は0から始まる点がポイントですが、「先頭は0」と覚えておけば十分です。
6. 複数シートをまとめて整理する実践例
ここまでの知識を組み合わせると、シート整理を一気に自動化できます。例えば「新しいシートを作り、不要なシートを削除し、最後に並び替える」といった流れです。
function main(workbook: ExcelScript.Workbook) {
workbook.addWorksheet("集計結果");
const oldSheet = workbook.getWorksheet("古いデータ");
if (oldSheet) {
oldSheet.delete();
}
const resultSheet = workbook.getWorksheet("集計結果");
resultSheet.setPosition(0);
}
このコードは、実際のExcel作業をそのまま文章にしたような内容です。Office Scriptsは、こうした「作業の流れ」をそのまま書ける点が大きな魅力です。Excel自動化、ワークシート操作、シート管理といったキーワードで検索してきた方にも役立つ内容になります。
7. 初心者がつまずきやすいポイントと注意点
初心者がよくつまずくのは、シート名の指定ミスです。全角・半角や文字の違いがあると、Office Scriptsは別の名前として扱います。また、存在しないシートを削除しようとするとエラーになります。
そのため、今回紹介したようにif文で存在確認を行う書き方が重要です。これはExcel自動化を安全に行うための基本です。難しいテクニックではなく、「あるかどうか確認してから操作する」という、現実の作業と同じ考え方です。
Office Scripts、Excel Online、ワークブック操作、ワークシート自動化といった基本キーワードを意識しながら、少しずつコードに慣れていくと理解が深まります。
まとめ
今回は、Office Scriptsを使ったExcel自動化の基本として、ワークシートの追加、削除、並べ替えといった日常的な操作をコードで実現する方法について詳しく解説しました。Excelを日常業務で使っていると、同じ作業を何度も繰り返す場面が多くなります。例えば、毎日新しいシートを作成してデータを入力したり、不要になったシートを削除したり、見やすくするためにシートの順番を整理したりといった作業です。これらは一つ一つは簡単でも、積み重なると大きな手間になります。
そこで活用したいのがOffice Scriptsです。Office ScriptsはExcel Online上で動作する自動化機能であり、TypeScriptという言語を使って操作を記述します。難しそうに感じるかもしれませんが、実際には「やりたい作業を順番に書くだけ」というシンプルな考え方で扱うことができます。特に初心者の方にとっては、「シートを追加する」「名前を指定する」「存在するか確認して削除する」といった一つ一つの操作を理解することが重要です。
ワークブックとワークシートの関係を理解することも大切なポイントです。ワークブックはファイル全体、ワークシートはその中の一枚一枚のシートです。この構造をイメージできるようになると、コードの意味がぐっと分かりやすくなります。例えば、addWorksheetはワークブックに新しいシートを追加する命令であり、getWorksheetは指定した名前のシートを取得する命令です。このように命令の意味を一つずつ理解していくことで、自然とコードが読めるようになります。
また、実務で非常に重要なのが安全な処理です。存在しないシートを削除しようとするとエラーが発生するため、if文を使って事前に存在確認を行うことが推奨されます。この考え方はプログラミングだけでなく、日常業務にも通じるものがあります。「確認してから実行する」という基本を守ることで、トラブルを防ぐことができます。
シートの並べ替えでは、setPositionを使って位置を数値で指定しました。ここでのポイントは、位置が0から始まるという点です。最初は違和感があるかもしれませんが、プログラミングの世界では一般的なルールです。このような細かいルールに慣れていくことも、スキルアップには欠かせません。
最後に紹介した実践例では、シートの追加、削除、並べ替えを一連の流れとしてまとめました。このように複数の処理を組み合わせることで、より実用的な自動化が可能になります。Excel作業を効率化したい方、業務改善を進めたい方にとって、Office Scriptsは非常に強力なツールです。最初は短いコードから始めて、徐々に処理を増やしていくことで、無理なくスキルを伸ばすことができます。
サンプルプログラム(復習用)
function main(workbook: ExcelScript.Workbook) {
// 新しいシートを追加
const newSheet = workbook.addWorksheet("レポート");
// 不要なシートを削除
const oldSheet = workbook.getWorksheet("削除対象");
if (oldSheet) {
oldSheet.delete();
}
// シートを先頭に移動
const reportSheet = workbook.getWorksheet("レポート");
if (reportSheet) {
reportSheet.setPosition(0);
}
}
生徒
「Office Scriptsって難しそうだと思っていましたが、やることは普段のExcel操作と同じなんですね。」
先生
「その通りです。違いは手で操作するか、コードで書くかだけです。慣れてくるとコードの方が速くて正確になります。」
生徒
「シートの追加や削除も、短いコードでできるのが分かりました。if文で確認するのも大事なんですね。」
先生
「はい。存在確認はとても重要です。エラーを防ぐ基本的な考え方なので、必ず身につけておきましょう。」
生徒
「並べ替えも数字で指定するだけなので、思ったより簡単でした。0から始まるのは最初戸惑いそうですが覚えます。」
先生
「そこに気づけたのは良いですね。プログラミングではよく出てくる考え方なので、今のうちに慣れておくと後が楽になります。」
生徒
「今回の内容を組み合わせれば、かなり実務でも使えそうです。毎日の作業を自動化できそうで楽しみです。」
先生
「ぜひ試してみてください。小さな自動化の積み重ねが、大きな効率化につながりますよ。」