テキストを検索してBoldに置換
Excelだと任意のテキストを検索してBoldなどに置換することは置換の書式を指定すれば簡単にできる。
しかし、Googleドキュメントだと書式の置換オプションが存在しないため、例えばfooという文字列をすべてBoldにしたい場合は1つずつ検索して手作業でBoldにしなければならない。
GASでテキストを検索してBoldに置換
さすがに一つずつ検索して手作業でBoldにするのは時間がかかりすぎるため、このような作業はGoogle Apps Script (以下GAS)を使用して任意のテキストを検索してBoldに置換できるようにしたほうが良い。
まず、以下のコードを記述してヘルプメニューの右に置換用のメニューを用意する。
function onOpen() { var ui = DocumentApp.getUi(); ui.createMenu('置換') .addItem('太字', 'replaceBold') .addToUi(); }
次に置換用の関数を用意する。
やっていることはpromptで'Boldにする文字列を入力'を表示させて任意の文字列を入力させ、その文字列にマッチした箇所をsetBoldで太字にしているだけなので簡単である。
setBold部分をsetForegroundColorに変えれば文字色追加、setBackgroundColorで背景色変更になる。
function replaceBold() { var app = DocumentApp.getUi(); var body = DocumentApp.getActiveDocument().getBody(); var asText = body.asText(); var text = asText.getText(); var str = app.prompt( 'Boldにする文字列を入力', app.ButtonSet.OK ).getResponseText(); var match = new RegExp(text.match(str), 'gm'); var pos = 0; var posN = 0; while ((arr = match.exec(text)) !== null) { Logger.log(arr); posN = body.asText().getText().indexOf(str, pos); if (posN !== -1) { asText.setBold(posN, posN + str.length - 1, true); } pos = match.lastIndex; } }