
【GAS】Google Apps Script 活用事例 Geminiが提案してくれた文章に見出しや太字などの装飾を適用するスクリプト
僕は、Google One AI Premium というプランに加入しています。
このプランでは、2TBもの保存容量と、Google SpreadsheetやGoogle DocsでGeminiが使えるようになります。
職場でもGeminiを使いたいと言ったら、Geminiのプランは代理店経由だとめちゃくちゃ高くなるんでダメとやんわり断られてしまいました。
ちょうど睡眠に関する記事原稿を書いていて、Geminiの提案内容を取り込んだ直後の画像です。

隔世の感はあるのですが、ただの太字で挿入されるんですよね…..。
見出しとか色とか太さを調整してくんねーかなと思っていました。
#666666、やや濃いめのライトグレーに変更し、見出し2を適用するスクリプトを書いてみました。

スクリプトはこんな感じ
function boldToHeading2() {
const docs = DocumentApp.getActiveDocument();
const body = docs.getBody();
const paragraphs = body.getParagraphs();
console.log(paragraphs[0]);
paragraphs.forEach(paragraph => {
const paragraphText = paragraph.getText();
const isBold = paragraph.isBold();
const fontColor = paragraph.editAsText().getForegroundColor();
const heading = paragraph.getHeading();
if(isBold === true && fontColor === null && heading === DocumentApp.ParagraphHeading.NORMAL){
console.warn(`paragraphText: ${paragraphText}, isBold:${isBold}, fontColor: ${fontColor}`);
// 見出し2を適用
paragraph.setHeading(DocumentApp.ParagraphHeading.HEADING2);
paragraph.editAsText().setBold(true).setForegroundColor("#666666");
}
})
}