Google Apps Script(GAS)を使うと、スプレッドシート内のテキスト検索や置換を一発で自動化できるばい!特にcreateTextFinder
メソッドを使うと、シート全体を対象にしたり、特定の範囲内でピンポイントに検索したりすることができるっちゃね。
今回は、その基本的な使い方から応用テクニックまで、実践的に解説するばい!
createTextFinderとは?
簡単に言うと、スプレッドシート内の特定の文字列を探すためのメソッドたい。使い方はシンプルで、以下のように書けばすぐに検索できるっちゃね。
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
const textFinder = spreadsheet.createTextFinder('検索ワード');
このメソッドはTextFinder
オブジェクトを返すけん、そこから.findAll()
や.replaceAllWith()
を使って検索結果を取得したり、置換したりできるとよ。
スプレッドシート内の文字列を検索する
検索した結果を取得する方法はいくつかあるばい!
findAll()
→ 一致するすべてのセルを取得findNext()
→ 次の一致するセルを取得findPrevious()
→ 前の一致するセルを取得
例えば、スプレッドシート内のすべての「重要」という文字を探して、セルの位置をログに出すならこんな感じになるばい。
const ranges = textFinder.findAll();
ranges.forEach(range => {
console.log(`行: ${range.getRow()}, 列: ${range.getColumn()}`);
});
これで、一致したセルの行と列を簡単に取得できるっちゃね!
文字列を置換する
検索した文字を置換するのもめっちゃ簡単たい!
spreadsheet.createTextFinder('旧ワード')
.replaceAllWith('新ワード');
これで、スプレッドシート内の「旧ワード」がすべて「新ワード」に変わるっちゃん。
もし、置換された件数を知りたい場合は、以下のように書けばOKばい!
const replacementCount = textFinder.replaceAllWith('新データ');
console.log(`${replacementCount}件の置換を実行しましたばい!`);
応用編: 高度な検索オプション
createTextFinder
には便利なオプションがたくさんあるばい!
textFinder
.matchCase(true) // 大文字小文字を区別
.matchEntireCell(true) // 完全一致のみ検索
.useRegularExpression(true) // 正規表現を利用
.ignoreDiacritics(true); // 発音記号を無視
例えば、電話番号のような特定のパターンを検索する場合は、正規表現を使うと一発でいけるとよ!
const regexFinder = spreadsheet.createTextFinder('\d{3}-\d{4}')
.useRegularExpression(true)
.findAll();
これで、000-0000 の形式の電話番号をすべて検索できるばい。
複数シートで検索・置換する方法
「全シートの特定の単語を一気に置換したい!」ってときは、以下のコードを使えばOKたい。
function replaceAcrossAllSheets() {
const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
const sheets = spreadsheet.getSheets();
sheets.forEach(sheet => {
sheet.createTextFinder('変更前')
.replaceAllWith('変更後');
});
}
シートごとに処理が実行されるけん、複数シートをまたいで処理するときに便利ばい!
まとめ
createTextFinder
メソッドを使うと、スプレッドシート内のテキスト検索や置換を自動化できるばい!基本の検索・置換だけでなく、正規表現を使った高度な検索や、複数シートを横断する処理もできるっちゃね。
この機能を活用すれば、手作業での検索・置換の手間が大幅に減って、業務効率が爆上がりするけん、ぜひ試してみてね!
コメント