よこのじ(@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)があれば、スプレッドシートを簡易的なデータベースとして利用できる。
[itemlink post_id=”2666″]