
テキストを検索して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;
}
}

