見出し画像

OfficeScriptsで名言ボットを作ってみた③ getUsedRangeメソッドで使用しているセル範囲を取得する

こんにちは。aliceです。

OfficeScriptsとPowerAutomateで名言ボットを作りました。(OfficeScriptsの使用にはweb版のExcelとライセンスが必要です。)

前回はこちら

アクティブワークシートの取得までできた!

function main(workbook: ExcelScript.Workbook) {
 let sheet = workbook.getActiveWorksheet();
}

ということで次はgetUsedRangeメソッドを使います。

1 使用しているセル範囲を取得する(getUsedRangeメソッド)

なぜgetUsedRangeメソッドなの?

公式ドキュメントで使っていたからです(;′⌒`)

// Get the values of the used range.
let range = selectedSheet.getUsedRange();
let rangeValues = range.getValues();
// Iterate over the fourth and fifth columns and set their values to their absolute value.
let rowCount = range.getRowCount();
for (let i = 1; i < rowCount; i++) {
   // The column at index 3 is column "4" in the worksheet.
   if (rangeValues[i][3] != 0) {
       let positiveValue = Math.abs(rangeValues[i][3] as number);
       selectedSheet.getCell(i, 3).setValue(positiveValue);
   }
   // The column at index 4 is column "5" in the worksheet.
   if (rangeValues[i][4] != 0) {
       let positiveValue = Math.abs(rangeValues[i][4] as number);
       selectedSheet.getCell(i, 4).setValue(positiveValue);
   }
}

一部抜粋

 ​// Get the values of the used range.
let range = selectedSheet.getUsedRange();
let rangeValues = range.getValues();

とりあえずgetUsedRangeメソッドで使用されている範囲を返して、その範囲のセルの値を取得するということでしょうか。そしてそのあと配列を使うのかな?

公式リファレンス

指定した範囲オブジェクトのうち使用されている範囲を返します。 範囲内に使用されているセルがない場合、この関数はプロパティが次の値に設定された isNullObject オブジェクトを返します。
getUsedRange(valuesOnly?: boolean): Range;

ということで使用されているセル範囲を取得するまでできました。

function main(workbook: ExcelScript.Workbook) {
 let sheet = workbook.getActiveWorksheet();
 let range = sheet.getUsedRange();
}


2 今日のまとめ

・使用されている範囲を取得するするときはgetUsedRangeメソッドを使う

お疲れさまでした!



この記事が気に入ったらサポートをしてみませんか?