Office Scriptsの基本!行列挿入・削除で学ぶExcel自動化コード入門
生徒
「Office ScriptsでExcelの行や列を自動で追加したり削除したりできますか?」
先生
「できますよ。Office Scriptsを使えば、Excel Onlineで行列挿入や削除などの編集処理を自動化できます。」
生徒
「マウスでやっている操作を、コードで書くイメージですか?」
先生
「その通りです。Excelの基本編集操作を、TypeScriptのコードで再現するだけです。それでは一緒に学んでいきましょう。」
1. Office Scriptsとは?
Office Scriptsは、Excel Onlineで使える自動化機能です。Excelの自動化タブからスクリプトを作成し、ワンクリックで実行できます。 普段マウスで行っている行挿入、列削除、セル編集などの操作を、コードでまとめて処理できるのが大きな特徴です。
Office ScriptsではTypeScriptという言語を使います。TypeScriptとは、JavaScriptをもとにしたプログラミング言語です。 といっても難しく考える必要はありません。Excelに対して命令を書く感覚で十分です。
たとえば、ノートに新しいページを追加するのが行挿入、不要なページを破るのが行削除のようなイメージです。 その操作を、キーボードだけで自動実行するのがExcel自動化の考え方です。
2. 行を挿入する基本コード
まずはExcelの行挿入から学びます。行挿入とは、既存のデータの間に新しい横一列を追加する操作です。 Office Scriptsでは、getRangeとinsertというメソッドを使います。
メソッドとは、あらかじめ用意された命令のことです。insertは「挿入する」という意味です。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const range = sheet.getRange("2:2");
range.insert(ExcelScript.InsertShiftDirection.down);
}
このコードでは、2行目の位置に新しい行を挿入しています。 InsertShiftDirection.downは「下へずらす」という意味です。 つまり、2行目に空白行を作り、元のデータは下へ移動します。
(実行結果)
2行目に空白行が追加され、元の2行目以降のデータが下へ移動します。
3. 列を挿入する基本コード
次は列挿入です。列挿入は縦方向の追加です。 売上表に新しい項目を追加したいときなどに便利です。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const range = sheet.getRange("B:B");
range.insert(ExcelScript.InsertShiftDirection.right);
}
B列の位置に新しい列を追加しています。 rightは「右へ移動」という意味です。 既存のB列以降のデータが右側へずれます。
(実行結果)
B列に空白列が追加され、元のB列以降のデータが右へ移動します。
行挿入と列挿入は、方向を変えるだけで応用できます。 Excel自動化では、この考え方を理解することが重要です。
4. 行を削除する基本コード
次は行削除です。不要なデータ行をまとめて消したいときに使います。 deleteというメソッドを使います。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const range = sheet.getRange("3:3");
range.delete(ExcelScript.DeleteShiftDirection.up);
}
このコードは3行目を削除します。 upは「上へ詰める」という意味です。 削除された分だけ下の行が上に移動します。
(実行結果)
3行目が削除され、下のデータが上に詰まります。
Excelで右クリックして削除する操作と同じです。 それをコードで自動化しているだけです。
5. 列を削除する基本コード
列削除も同じ考え方です。 不要な項目を一括削除できます。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
const range = sheet.getRange("C:C");
range.delete(ExcelScript.DeleteShiftDirection.left);
}
C列を削除し、右側の列が左へ詰まります。 leftは「左へ移動」という意味です。
(実行結果)
C列が削除され、右側の列が左へ移動します。
6. 行列編集を安全に行うポイント
Office Scriptsで行挿入や列削除を行うときは、範囲指定に注意が必要です。 getRangeで指定する位置を間違えると、意図しないデータが移動してしまいます。
Excel自動化では、必ずテスト用のシートで確認してから本番データに適用しましょう。 特に大量データを扱う場合は慎重な確認が重要です。
また、Office ScriptsはExcel Online専用の機能です。 デスクトップ版ExcelのVBAとは仕組みが異なります。 VBAとの違いも理解しておくと、Excel自動化の理解がより深まります。
行列挿入、行削除、列削除などの基本編集処理を覚えるだけで、 日常業務のデータ整理や売上管理、名簿管理などを効率化できます。 Office Scriptsは初心者でも始めやすいExcel自動化ツールです。
まとめ
今回はOffice Scriptsを使ったExcel自動化の基本として、行挿入、列挿入、行削除、列削除の操作方法を体系的に学びました。Office ScriptsはExcel Onlineで利用できる自動化機能であり、TypeScriptを使ってシート操作を記述できる点が大きな特徴です。これまでマウス操作で行っていたExcel編集作業を、コードとして記述しワンクリックで実行できることが、業務効率化に直結します。
行挿入ではgetRangeで対象行を指定し、insertメソッドとInsertShiftDirectionを組み合わせることで下方向へデータを移動させながら空白行を追加できました。列挿入ではright方向へのシフトを指定することで、既存データを安全に保持しながら新しい項目列を追加できました。行削除や列削除ではdeleteメソッドとDeleteShiftDirectionを使い、データを上方向または左方向へ詰める動作を理解しました。
Excel自動化において重要なのは、範囲指定の正確性と処理の流れの理解です。getRangeで指定する行番号や列記号を誤ると、意図しないデータ移動が発生する可能性があります。したがって、必ずテストシートで確認しながらスクリプトを作成することが安全な運用につながります。特に売上管理表、在庫管理表、顧客名簿などの実務データでは慎重な検証が欠かせません。
Office ScriptsはVBAとは異なり、Excel Online上で動作するモダンな自動化機能です。クラウド環境でのExcel自動化という点も大きな魅力です。Power Automateと組み合わせれば、定期実行や通知連携なども可能になります。行列編集の基本を理解することは、より高度なExcel自動処理への第一歩となります。
ここで、今回学んだ行挿入と列削除を組み合わせた応用例を確認してみましょう。行列挿入と削除を連続して実行することで、レポート整形やデータ加工を自動化できます。
function main(workbook: ExcelScript.Workbook) {
const sheet = workbook.getActiveWorksheet();
// 2行目に行挿入
sheet.getRange("2:2")
.insert(ExcelScript.InsertShiftDirection.down);
// C列を削除
sheet.getRange("C:C")
.delete(ExcelScript.DeleteShiftDirection.left);
}
(実行結果)
2行目に空白行が追加され、その後C列が削除されます。
既存データは安全に移動し、レイアウトが自動調整されます。
このように、Office Scriptsの行列挿入削除処理は非常にシンプルですが、組み合わせることで強力なExcel自動化が実現できます。Excel業務効率化、データ整理自動化、表レイアウト整形、月次報告書作成など、さまざまな場面で活用できます。基本構文を繰り返し書いて理解することが、確実なスキル定着につながります。
生徒
「Office Scriptsで行挿入や列削除がこんなに簡単にできるとは思いませんでした。Excel自動化って難しそうな印象がありました。」
先生
「基本はとても単純です。getRangeで範囲指定をして、insertやdeleteで方向を指定するだけです。方向の意味を理解すれば怖くありません。」
生徒
「InsertShiftDirectionやDeleteShiftDirectionの考え方が分かれば、応用もできそうですね。」
先生
「その通りです。Excel Onlineでの自動化は、繰り返し処理や定型業務の効率化に非常に効果的です。行列編集の基本が理解できれば、条件分岐やデータ取得処理にも進めます。」
生徒
「まずは行挿入、列挿入、行削除、列削除を何度も練習して、Excel自動化に慣れていきます。」
先生
「それが一番の近道です。Office Scriptsを活用して、日々のExcel作業を効率化できるエンジニアを目指しましょう。」