MENU
IT
PR

【OfficeScripts】 Excel 行・列の操作 Range.Row・Column

Excel OfficeScript 行 列 操作
ほし
記事内に商品プロモーションを含む場合があります

皆さんお疲れ様です。 ほしコラムの管理人のほしです。

OfficeScriptsで、Excelの行・列「Row」「Column」を操作する方法について紹介していきます。

前回の記事でも紹介させていただきましたが、ExcelOnlineは、ExeclVBAが実行できないので

ExcelOnlineを自動化する方法が、OfficeScriptsになっています!!

「行や列に一括で操作したいな〜」

「特定数の行・列を数えたいな」などのお悩みを抱えていませんか?

本記事はそんな方に向けた記事になっています。

はじめに

本記事で解決できるOfficeScriptsのコマンドは以下の内容になります。

  • 行の取得 getRow()
  • 列の取得 getColumn()
  • 行の挿入 row.insert()
  • 列の挿入 colmun.insert()
  • 行の削除 row.delete()
  • 列の削除 column.delete()

上記の内容について、サンプルコードを用いて簡単に解説していきたいと思います。

OfficeScriptsで行(Row)・列(Column)の操作

これから、列や行に対しての操作方法について説明していきます。

行や列に対する操作を実施する前に、行・列の取得方法をおさらいしておきましょう!

行を取得する方法:<<sheet>>.getRange(‘A : A’) ※A行を取得

上記を実行すると、<<Range>>オブジェクトが戻ってきます。

取得した<<Range>>オブジェクトに対して処理を実行していきます。

セルの取得方法について、ご存知ない方は、以下の記事で復習してみてください!

【OfficeScripts】セルの基本操作 Range:セルの値を取得・代入
【OfficeScripts】セルの基本操作 Range:セルの値を取得・代入

Row() 行の操作

<<Range>>.getRow(数値) ※Rangeオブジェクトから呼び出し

Rangeオブジェクトから呼び出すことができます。

実行時に、選択範囲の中での行番号を指定して行を取得します。※0が1番上の行になります。

選択範囲の行ごとに、行番号を入力するサンプルコードを実行していきます。

OfficeScripts実行前

Excel OfficeScript Row() 実行前
行に対する操作 実行前(Office Script)

OfficeScripts実行後

Excel OfficeScript Row() 実行後
行に対する操作 実行後(Office Script)

選択範囲内での行数に対応した値が入力されていますね!

今回ソースコードで使用した、<<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実行前

Excel OfficeScript Column() 実行前
列に対する操作 実行前(Office Script)

OfficeScripts実行後

Excel OfficeScript Column() 実行後
列に対する操作 実行前(Office Script)

選択範囲内での列数に対応した値が入力されていますね!

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実行前

Excel OfficeScript insert (ExcelScript.InsertShiftDirection.down)  実行前
行・列の挿入前(Office Script)

OfficeScripts実行後

Excel OfficeScript insert (ExcelScript.InsertShiftDirection.down)  実行後
行・列の挿入後(Office Script)
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実行前

Excel OfficeScript delete(ExcelScript.DeleteShiftDirection.left)  delete(ExcelScript.DeleteShiftDirection.up)
実行前
行・列の削除前(Office Script)

OfficeScripts実行後

Excel OfficeScript delete(ExcelScript.DeleteShiftDirection.left)  delete(ExcelScript.DeleteShiftDirection.up)
実行後
行・列の削除後(Office Script)

今回のコードでは、「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 から呼び出す方法についてはこちらを参考にしてみてください。

【VBA・OfficeScripts】PowerAutomateでExcelマクロ実行
【VBA・OfficeScripts】PowerAutomateでExcelマクロ実行
ABOUT ME
ほし
ほし
エンジニア
ほしコラム管理人のほしです。 20代のITエンジニアです。 PowerAutomateで業務効率化の方法を中心に紹介していきます! たまに日常生活についても記事にしていきます! ほしコラム - にほんブログ村
記事URLをコピーしました