【初心者向けのGAS】スプレッドシート内のテキスト検索と置換をする方法

よこのじ(@yokonoji_work)です。

Google Apps Script(GAS)で「スプレッドシート内のテキスト検索と置換をする方法」をご紹介します。

値の書き込み「【初心者向けのGAS】スプレッドシートの指定したセルに値を書き込む方法」と合わせて使えるようになれば、セルの値設定に困ることはほぼ無くなるかと思います。

スプレッドシート内のテキスト検索と置換をする方法

スプレッドシート内のテキスト検索と置換をするためには、対象のシートを指定しておく必要があります。

// スプレッドシートを取得する 
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); 
// シートを取得する
var sheet = spreadsheet.getSheetByName("シート1");

テキストを『検索』する方法

テキストを『検索』するためには、createTextFinderメソッドを使用します。

var textFinder = sheet.createTextFinder('犬');
var matchCells = textFinder.findAll();

createTextFinder(‘犬’) で『犬』という文字を検索します。柴犬や秋田犬など、犬という単語が含まれていれば検索の対象となります。

テキスト検索

対象のセルを知りたい場合は、findAll()メソッドで該当のセルを抽出します。

確認として、次のような処理を入れて実行後にCtrl + Enterを押してみると、A1,A3,A5というセルが取得できているのが分かります(getA1Notation()は、A1のような形式でセルアドレスを表示するメソッド)。

for(var i = 0; i < matchCells.length; i++){
  Logger.log( matchCells[i].getA1Notation() );
}

ちなみに、先ほど紹介したように柴犬や秋田犬など『犬』を含むものを検索するのではなく、『犬』という文字のみが書かれたセルを検索するには matchEntireCellメソッドを使用します。

var textFinder = sheet.createTextFinder('犬').matchEntireCell(true);

また、大文字と小文字も区別する場合は、matchCaseメソッドを使用します。

テキストを『置換』する方法

テキストを『置換』するためには、replaceAllWith()メソッドを使用します。

var textFinder = sheet.createTextFinder('犬');
textFinder.replaceAllWith("ねこ");

createTextFinderメソッドで対象の文字を検索して、replaceAllWithメソッドで指定の文字に置換しています。

テキストの置換

A1,A3,A5は『犬』という文字でしたが、『ねこ』に置換されているのが確認できます。

 

頻繁に使用するスクリプトは「【初心者向けのGAS】スプレッドシートにスクリプト実行メニューを追加する方法」を参考にメニューに登録しておきましょう。

Google Apps Script(GAS)があれば、スプレッドシートを簡易的なデータベースとして利用できる。