OfficeScriptsで名言ボットを作ってみた⑨ セルに値を入れたい🙂setValueメソッド
こんにちは。aliceです。
Office Scripts初心者が名言ボットを作ってみたシリーズ。はじめてのOffice Scripts。
setValueメソッドを使って値を入れます。
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」を入れました。
今回はsetValueメソッドを見ていきます。
1 setValueメソッド
setValueメソッドは指定した範囲に値を入れるメソッド。
setValue(value)
指定した範囲の生の値を設定します。 設定するデータには、文字列型、数値型、ブール型を指定できます。 null 値は無視されます (Excel では設定も上書きもされません)。 範囲に複数のセルが含まれている場合は、指定した範囲内の各セルが入力データで更新されます。
setValue(value: any): void;
【セル範囲が単一セルのとき】
単体のセル(D10)を指定すると…、
D10セルに「TRUE」が入った。
function main(workbook: ExcelScript.Workbook) {
let sheet = workbook.getActiveWorksheet();
let range = sheet.getRange("D10")
range.setValue("True");
}
【セル範囲が複数のセルのとき】
セル範囲をD10~D13で指定すると…、
全部(D10~D13セルが)「TRUE」になった。
function main(workbook: ExcelScript.Workbook) {
let sheet = workbook.getActiveWorksheet();
let range = sheet.getRange("D10:D13");
range.setValue("True");
}
いっそのこと配列でも入れてみる?
エラーになった。
引数が正しくない、不足している、または形式が不適切です。
日本語になってる。優しい。
2 setValuesメソッド
setValuesメソッドは指定した範囲に配列を入れるメソッド。
setValues(values)
指定した範囲の Raw 値を表します。 返されるデータには、文字列、数値、またはブール値を指定できます。 エラーが含まれているセルは、エラー文字列を返します。 戻り値がプラス ("+")、マイナス ("-")、または等号 ("=") で始まる場合、Excel は、この値を数式として解釈します。
etValues(values: (string | number | boolean)[][]): void;
A10~C10セルに新たな名言を追加します。
ちゃんと入った!
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メソッドは指定した範囲に配列を入れるメソッド。
お疲れさまでした。