見出し画像

OfficeScriptsで名言ボットを作ってみた⑨ セルに値を入れたい🙂setValueメソッド

こんにちは。aliceです。

Office Scripts初心者が名言ボットを作ってみたシリーズ。はじめてのOffice Scripts。

setValueメソッドを使って値を入れます。

画像9

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

コードは前回の続きです。

function main(workbook: ExcelScript.Workbook) {
let sheet = workbook.getActiveWorksheet();
let range = sheet.getUsedRange();
let rangeValues = range.getValues();
let lastRow = range.getRowCount();
for (let i = 1; i <= lastRow; i++) {
  if (rangeValues[i][3] === "") {
    sheet.getCell(i, 3).setValue("True");
  }
}
}


setValueメソッドを使ってD列に「TRUE」を入れました。

画像2

今回はsetValueメソッドを見ていきます。


1 setValueメソッド

setValueメソッドは指定した範囲に値を入れるメソッド。

setValue(value)
指定した範囲の生の値を設定します。 設定するデータには、文字列型、数値型、ブール型を指定できます。 null 値は無視されます (Excel では設定も上書きもされません)。 範囲に複数のセルが含まれている場合は、指定した範囲内の各セルが入力データで更新されます。
setValue(value: any): void;


【セル範囲が単一セルのとき】

単体のセル(D10)を指定すると…、

画像3

D10セルに「TRUE」が入った。

画像4

function main(workbook: ExcelScript.Workbook) {
 let sheet = workbook.getActiveWorksheet();
 let range = sheet.getRange("D10")
 range.setValue("True");
}


【セル範囲が複数のセルのとき】

セル範囲をD10~D13で指定すると…、

画像7

全部(D10~D13セルが)「TRUE」になった。

画像6

function main(workbook: ExcelScript.Workbook) {
 let sheet = workbook.getActiveWorksheet();
 let range = sheet.getRange("D10:D13");
 range.setValue("True");
}


いっそのこと配列でも入れてみる?

画像7

エラーになった。

引数が正しくない、不足している、または形式が不適切です。

日本語になってる。優しい。


2 setValuesメソッド

setValuesメソッドは指定した範囲に配列を入れるメソッド。

setValues(values)
指定した範囲の Raw 値を表します。 返されるデータには、文字列、数値、またはブール値を指定できます。 エラーが含まれているセルは、エラー文字列を返します。 戻り値がプラス ("+")、マイナス ("-")、または等号 ("=") で始まる場合、Excel は、この値を数式として解釈します。
etValues(values: (string | number | boolean)[][]): void;

A10~C10セルに新たな名言を追加します。

画像8

ちゃんと入った!

画像9

function main(workbook: ExcelScript.Workbook) {
 let sheet = workbook.getActiveWorksheet();
 let range = sheet.getRange("A10:C10");
 let values = [[9,"僕がいるから...。","ジョンヒョク"]];
 range.setValues(values);
}


今回は単体のセルなのでsetValueメソッドを使っています。

function main(workbook: ExcelScript.Workbook) {
 let sheet = workbook.getActiveWorksheet();
 let range = sheet.getUsedRange();
 let rangeValues = range.getValues();
 let lastRow = range.getRowCount();
 for (let i = 1; i <= lastRow; i++) {
   if (rangeValues[i][3] === "") {
     sheet.getCell(i, 3).setValue("True");
   }
 }
}


3 今日のまとめ

・setValueメソッドは指定した範囲に同じ値を入れるメソッド。

・setValuesメソッドは指定した範囲に配列を入れるメソッド。


お疲れさまでした。





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