【OfficeScripts】 Excel 行・列の操作 Range.Row・Column
皆さんお疲れ様です。 ほしコラムの管理人のほしです。
OfficeScriptsで、Excelの行・列「Row」「Column」を操作する方法について紹介していきます。
前回の記事でも紹介させていただきましたが、ExcelOnlineは、ExeclVBAが実行できないので
ExcelOnlineを自動化する方法が、OfficeScriptsになっています!!
「行や列に一括で操作したいな〜」
「特定数の行・列を数えたいな」などのお悩みを抱えていませんか?
本記事はそんな方に向けた記事になっています。
はじめに
本記事で解決できるOfficeScriptsのコマンドは以下の内容になります。
- 行の取得 getRow()
- 列の取得 getColumn()
- 行の挿入 row.insert()
- 列の挿入 colmun.insert()
- 行の削除 row.delete()
- 列の削除 column.delete()
上記の内容について、サンプルコードを用いて簡単に解説していきたいと思います。
OfficeScriptsで行(Row)・列(Column)の操作
これから、列や行に対しての操作方法について説明していきます。
行や列に対する操作を実施する前に、行・列の取得方法をおさらいしておきましょう!
上記を実行すると、<<Range>>オブジェクトが戻ってきます。
取得した<<Range>>オブジェクトに対して処理を実行していきます。
セルの取得方法について、ご存知ない方は、以下の記事で復習してみてください!
Row() 行の操作
<<Range>>.getRow(数値) ※Rangeオブジェクトから呼び出し
Rangeオブジェクトから呼び出すことができます。
実行時に、選択範囲の中での行番号を指定して行を取得します。※0が1番上の行になります。
選択範囲の行ごとに、行番号を入力するサンプルコードを実行していきます。
OfficeScripts実行前
OfficeScripts実行後
選択範囲内での行数に対応した値が入力されていますね!
今回ソースコードで使用した、<<Range>>.getRowCountで選択範囲の行数を取得しています。
上記を使用すれば、行数を取得することが簡単にできます。
1function main(workbook: ExcelScript.Workbook) {
2
3 //アクティブシートを選択
4 let sheet = workbook.getActiveWorksheet()
5 //シートの選択範囲のrangeを取得
6 let range = workbook.getSelectedRange()
7 //アクティブrangeの行数繰り返し処理を実施する
8 for (let i = 0 ; i < range.getRowCount() ; i++){
9 let row = range.getRow(i)
10 row.setValue(i + " 行目")
11 }
12
13}
Column() 列の操作
<<Range>>.getColumn(数値) ※Rangeオブジェクトから呼び出し
Rangeオブジェクトから呼び出すことができます。
実行時に、選択範囲の中での列番号を指定することで列を取得します。※ 0が1番左の列になります。
選択範囲の列ごとに、列番号を入力するサンプルコードを実行していきます。
OfficeScripts実行前
OfficeScripts実行後
選択範囲内での列数に対応した値が入力されていますね!
getRow()のソースコードと同じように、<<Range>>.getColumnCountで選択範囲の列数を取得しています。
上記を使用すれば、列数を取得することが簡単にできます。
1function main(workbook: ExcelScript.Workbook) {
2
3 //アクティブシートを選択
4 let sheet = workbook.getActiveWorksheet()
5 //シートの選択範囲のrangeを取得
6 let range = workbook.getSelectedRange()
7 //アクティブrangeの列数繰り返し処理を実施する
8 for (let i = 0 ; i < range.getColumnCount() ; i++){
9 let col = range.getColumn(i)
10 col.setValue(i + " 列目")
11 }
12}
列・行の挿入
<<Range>>.insert (ExcelScript.InsertShiftDirection.right) 列の挿入
上記のコードのように、<<Range>>オブジェクトから呼び出すことで、列の挿入できます。
挿入方向を、「ExcelScript.InsertShiftDirection.right」で指定します。
列の挿入を実施したいので、「right」で左側に挿入することを明示しています。
<<Range>>.insert (ExcelScript.InsertShiftDirection.down) 行の挿入
上記のコードのように、<<Range>>オブジェクトから呼び出すことで、行の挿入できます。
挿入方向を、「ExcelScript.InsertShiftDirection.down」で指定します。
行の挿入を実施したいので、「down」で行を上方向に挿入することを明示しています。
今回のコードでは、「A:A」列と「1:1」行に挿入していきます。
OfficeScripts実行前
OfficeScripts実行後
1function main(workbook: ExcelScript.Workbook) {
2
3 //アクティブシートを選択
4 let sheet = workbook.getActiveWorksheet()
5 //シートのA行を取得
6 let row = sheet.getRange('1:1')
7 //シートの1列目を取得
8 let col = sheet.getRange('A:A')
9 //行・列の挿入
10 col.insert(ExcelScript.InsertShiftDirection.right)
11 row.insert(ExcelScript.InsertShiftDirection.down)
12
13}
列・行の削除
行を削除する際は、以下のコードで実行できます。
<<Range>>.delete(ExcelScript.DeleteShiftDirection.up) 行の削除
※Rangeオブジェクトから呼び出し
削除方向を、「ExcelScript.DeleteShiftDirection.up」で指定します。
行の削除を実施したいので、「up」で上方向に削除することを明示しています。
列を削除する際は、以下のコードで実行できます。
<<Range>>.delete(ExcelScript.DeleteShiftDirection.left) 列の削除
※Rangeオブジェクトから呼び出し
削除方向を、「ExcelScript.DeleteShiftDirection.left」で指定します。
列の削除を実施したいので、「left」で左詰に削除することを明示しています。
OfficeScripts実行前
OfficeScripts実行後
今回のコードでは、「A:A」列と「1:1」行を削除します。
削除したい行・列と削除方向を気にしないければいけません!
1function main(workbook: ExcelScript.Workbook) {
2
3 //アクティブシートを選択
4 let sheet = workbook.getActiveWorksheet()
5 //シートのA行を取得
6 let row = sheet.getRange('1:1')
7 //シートの1列目を取得
8 let col = sheet.getRange('A:A')
9 //行・列の削除
10 col.delete(ExcelScript.DeleteShiftDirection.left)
11 row.delete(ExcelScript.DeleteShiftDirection.up)
12
13}
最後に
これからも、OfficeScriptsでExcel作業を自動化するための記事を紹介していきます。
Excel作業を自動化する上で、PowerAutomate × OfficeScripts は欠かせません!
OfficeScriptsをPowerAutomate から呼び出す方法についてはこちらを参考にしてみてください。