GASでスプレッドシートで検索条件に一致するセルを返すには「findNext()
」を利用する。
findNext()
検索条件に一致する次のセルを返します。
https://developers.google.com/apps-script/reference/spreadsheet/text-finder#findnext
スプレッドシートで検索条件に一致するセルを返すGAS実行の様子
findNext()メソッドを利用して、スプレッドシートで検索条件に一致するセルを返すGASを実行してみました。
createTextFinder(findText)
メソッドでスプレッドシート内を検索する場合は、以下記事を御覧ください。
参照記事:【GAS】スプレッドシート内で検索を行う
スプレッドシートで検索条件に一致するセルを返すGAS
function sheetdelete(){
//SpreadsheetAppを起動
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sht = ss.getSheets()[0];
//見出し作成
var text = [
["これは","文字を","検索する","テストです"]
];
sht.getRange("A1:D1")
.setValues(text)
.setFontWeight("bold").setFontSize(16);
//繰返しテキストを変数へ格納
var array1,array2,array3
array1 = "Spread";
array2 = "Sheet";
array3 = ".BLUE";
array4 = "補足";
//変数を繰り返しA~D列の101行目まで入力
for(let i=2;i<=101;i++){
sht.getRange(i,1).setValue(array1);//101行目までarray1をセット
sht.getRange(i,2).setValue(array2);//101行目までarray2をセット
sht.getRange(i,3).setValue(array3);//101行目までarray3をセット
var array = array1+array2+array3; //配列テキストの合体!
sht.getRange(i,4).setValue(array+(i-1));//101行目まで連番でセット
sht.getRange(i,5).setValue(array4+(i-1));//101行目まで連番でセット
}
//変数txtへあいうえおを格納して適当な位置へ設置
var txt = "検索文字";
sht.getRange(50,3).setValue(txt);
//YESNOでテキスト検索するか確認
var yesno = Browser.msgBox("文字"+txt+"がどこにあるか検索しますか?",Browser.Buttons.YES_NO_CANCEL);
if(yesno == "yes"){
//createTextFinderで文字を検索
var txtfind = ss.createTextFinder(txt);
//■findNextで検索条件に一致したセルを取得してgetA1NotationでA1形式に
var cell = txtfind.findNext().getA1Notation();
//検索されたセル位置をアクティブに
sht.getRange(cell)
.setBackground("yellow")
.activate();
//メッセージで取得位置を掲載
Browser.msgBox(txt+"があるセルは「"+cell+"」です!");
} else {
Browser.msgBox("検索はキャンセルしました");
}
}
findNext()の戻り値
Range—次の一致するセル、またはnull前の一致がない場合。
スプレッドシートで検索条件に一致するセルを返すまとめ
GAS×スプレッドシートで検索条件に一致するセルを返すならfindNext()
メソッドを利用しましょう。
関連記事:【GAS】スプレッドシート内で検索を行う
関連記事:【GAS】スプレッドシートのUIに関数メニューを追加する
関連記事:【GAS】スプレッドシートに名前とインデックスを指定した新規シートを挿入する
関連記事:【GAS】スプレッドシートで指定した名前で新規シートを作成する
関連記事:【GAS】スプレッドシートのグリッド線を非表示にする
関連記事:【GAS】スプレッドシートをコピーして新規シートを作成する
関連記事:【GAS】スプレッドシートのアクティブシートを削除する
関連記事:【GAS】スプレッドシートで現在アクティブなシートを返す
関連記事:【GAS】スプレッドシートで名前・行・列数を指定して新規シートする
関連記事:【GAS】スプレッドシートのアクティブシートの名前を取得する