Excel Office スクリプト シートから文字列を検索

2021年8月17日

Office スクリプトにおけるシートから文字列を検索する方法を紹介します。

解説

以下のコードで検索を行います。(赤字は適宜変更

let 検索結果の変数名 = workbook.getWorksheet("シート").findAll("検索ワード", { completeMatch: 完全一致(true)か部分一致(false), matchCase: 小文字・大文字を区別する(true)か、大文字・小文字を区別しない(false)});

結果には検索結果のセル範囲が配列で格納されます。

もし検索結果が存在しない場合はundefinedになります。

これはエラーの原因になるため対策しておく必要があります。

if(検索結果の変数名 === undefined){
	// 該当するものがないと undefined
}
else{
	// 該当するものがある場合
}

結果はrangeオブジェクト(getRangeの結果と同じ)の配列で操作は多岐にわたりますが、

代表的なものは次の通りです。

result.getAreaCount(); // 一致件数
result.getAreas(); // 一致したセル(range)の配列
result.getAreas()[インデックス]; // 一致したセル(range)
result.getAreas()[インデックス].getAddress();  // 一致したセル(range)のアドレス
result.getAreas()[インデックス].getValue();  // 一致したセル(range)の値
result.getAreas()[インデックス].clear();  // 一致したセル(range)をクリア
result.getAreas()[インデックス].setValue(設定値);  // 一致したセル(range)を更新

関連記事

Excel Office スクリプトの記事一覧

Excel セルの検索と置換