ADVERTISEMENT

【Googleドキュメント】Apps Scriptで段落スタイル一括変更!見出しの一括書式

【Googleドキュメント】Apps Scriptで段落スタイル一括変更!見出しの一括書式
🛡️ 超解決

Googleドキュメントで長い文書を作成した後、見出しのスタイルを一括で変更したいと思ったことはありませんか。例えば「見出し1」を「見出し2」に変えたり、フォントサイズや色を統一したい場合、手作業では膨大な時間がかかります。この記事では、Apps Scriptを使って段落スタイルをプログラムで一括変更する方法を解説します。スクリプトを実行すれば、数十ページの文書でも瞬時に書式を統一できます。

【要点】Apps Scriptで段落スタイルを一括変更するポイント

  • setParagraphHeadingメソッド: 段落の見出しスタイルを変更します。引数にDocumentApp.ParagraphHeading.HEADING1などの定数を指定します。
  • getBodyとgetParagraphs: 文書全体の段落を取得する基本メソッドです。これらの組み合わせで全段落を走査します。
  • forEachループと条件分岐: 特定の見出しスタイルのみを変更する場合、if文でスタイルを判定してから変更します。

ADVERTISEMENT

Apps Scriptで段落スタイルを変更する仕組み

Apps ScriptはGoogleドキュメントの文書をプログラムで操作できる環境です。段落スタイルの変更にはDocumentAppクラスを使用します。文書の各段落はParagraphオブジェクトとして扱われ、setParagraphHeadingメソッドで見出しスタイルを変更できます。getParagraphsメソッドで全段落を配列として取得し、forループやforEachで一つずつ処理します。この仕組みを理解すれば、見出しだけでなくフォントや文字サイズの一括変更も可能です。スクリプトはGoogleドキュメントのメニューから「拡張機能」→「Apps Script」で開くエディタに記述します。

Apps Scriptで段落スタイルを一括変更する手順

ここでは、実際にスクリプトを作成して実行する手順を説明します。複数のコード例を紹介するので、目的に合わせて使用してください。

スクリプトエディタを開く

  1. 拡張機能メニューを開く
    Googleドキュメントのメニューバーから「拡張機能」をクリックし、「Apps Script」を選択します。スクリプトエディタが新しいタブで開きます。
  2. プロジェクト名を設定する
    デフォルトの「無題のプロジェクト」をクリックして、わかりやすい名前(例:「段落スタイル一括変更」)に変更します。

基本のスクリプトコードを記述する(見出し1を見出し2に変更)

  1. 関数を定義する
    エディタに以下のコードを入力します。このコードは、文書内の「見出し1」をすべて「見出し2」に変更します。
    function changeHeadingStyle() {
    var doc = DocumentApp.getActiveDocument();
    var body = doc.getBody();
    var paragraphs = body.getParagraphs();
    paragraphs.forEach(function(para) {
    if (para.getHeading() == DocumentApp.ParagraphHeading.HEADING1) {
    para.setHeading(DocumentApp.ParagraphHeading.HEADING2);
    }
    });
    }
  2. 実行する
    スクリプトエディタの上部にある「実行」ボタンをクリックします。初回は権限の承認を求められるので、指示に従って許可します。元のドキュメントに戻り、見出しスタイルが変更されていることを確認します。

複数の見出しスタイルを一度に変更する

  1. 複数条件のスクリプト
    以下のコードは、「見出し1」を「見出し3」に、「見出し2」を「見出し4」に同時に変更します。
    function changeMultipleHeadings() {
    var doc = DocumentApp.getActiveDocument();
    var body = doc.getBody();
    var paragraphs = body.getParagraphs();
    paragraphs.forEach(function(para) {
    var heading = para.getHeading();
    if (heading == DocumentApp.ParagraphHeading.HEADING1) {
    para.setHeading(DocumentApp.ParagraphHeading.HEADING3);
    } else if (heading == DocumentApp.ParagraphHeading.HEADING2) {
    para.setHeading(DocumentApp.ParagraphHeading.HEADING4);
    }
    });
    }
  2. 実行と確認
    同様に実行ボタンで実行します。必要に応じて条件や変更先の定数を調整してください。

フォントサイズや色も一緒に変更する

  1. 書式設定を追加したコード
    以下の例では、「見出し1」を「見出し2」に変更すると同時に、フォントサイズを18pt、文字色を青に設定します。
    function changeHeadingWithFormat() {
    var doc = DocumentApp.getActiveDocument();
    var body = doc.getBody();
    var paragraphs = body.getParagraphs();
    paragraphs.forEach(function(para) {
    if (para.getHeading() == DocumentApp.ParagraphHeading.HEADING1) {
    para.setHeading(DocumentApp.ParagraphHeading.HEADING2);
    para.setFontSize(18);
    para.setForegroundColor('#0000FF');
    }
    });
    }
  2. その他の書式プロパティ
    setFontFamilyでフォント種類、setBoldで太字、setItalicで斜体も設定できます。すべてのParagraphオブジェクトのメソッドを活用してください。

標準テキストに見出しスタイルを適用する(逆方向)

  1. 標準テキストを見出しに変更
    特定のキーワードを含む段落を見出しに変更する場合、以下のようなコードを使用します。この例では「重要」という文字を含む段落を「見出し2」に変更します。
    function promoteToHeading() {
    var doc = DocumentApp.getActiveDocument();
    var body = doc.getBody();
    var paragraphs = body.getParagraphs();
    paragraphs.forEach(function(para) {
    if (para.getText().indexOf('重要') !== -1) {
    para.setHeading(DocumentApp.ParagraphHeading.HEADING2);
    }
    });
    }
  2. 注意点
    文字列の部分一致で判定するため、想定外の段落が変更されるリスクがあります。正規表現を使いたい場合はmatchメソッドを利用してください。

よくあるエラーと対処法

スクリプトが権限エラーで動かない

初回実行時には、ドキュメントへのアクセス権限を承認する必要があります。承認画面で「許可」をクリックしないとスクリプトは実行されません。また、組織のポリシーでApps Scriptの使用が制限されている場合があります。その場合は管理者に相談してください。

変更が一部の段落にしか適用されない

getParagraphsメソッドは、本文の段落のみを取得します。テーブル内の段落やヘッダー・フッター内の段落は含まれません。それらも変更したい場合は、getTablesメソッドやgetHeaderメソッドなどを併用して個別に処理する必要があります。例えば、テーブル内の段落を取得するには、getTablesでテーブルを取得し、各セルのgetParagraphsを使います。

実行後に意図しないスタイルが変わってしまう

条件分岐の判定が緩いと、対象外の段落まで変更してしまいます。特に等価演算子は厳密な===を使用し、定数と正確に比較しましょう。また、大量の段落がある場合、スクリプトの実行に時間がかかることがあります。事前にドキュメントのバックアップを取ってから実行することをおすすめします。

スクリプトエディタでエラーが表示される

構文エラーや変数の未定義など、一般的なプログラミングのミスが原因です。エラーメッセージをよく読み、該当行を修正してください。また、DocumentAppクラスのメソッド名は大文字小文字を正確に記述する必要があります。

ADVERTISEMENT

主な見出しスタイル定数とその用途

定数名 見出しレベル デフォルトの書式
HEADING1 見出し1 大見出し、フォントサイズ20pt、太字
HEADING2 見出し2 中見出し、フォントサイズ18pt、太字
HEADING3 見出し3 小見出し、フォントサイズ16pt、太字
HEADING4 見出し4 フォントサイズ14pt、太字
HEADING5 見出し5 フォントサイズ12pt、太字
HEADING6 見出し6 フォントサイズ10pt、太字
NORMAL 標準テキスト 通常の段落書式

この記事では、Apps Scriptを使ってGoogleドキュメントの段落スタイルを一括変更する方法を解説しました。setParagraphHeadingメソッドとgetParagraphsを組み合わせることで、文書全体の見出しを効率的に統一できます。応用として、特定の見出しだけを変更したり、フォントや色も同時に変更するスクリプトを作成してみてください。また、スクリプトを複数のドキュメントで使い回す場合は、関数を引数付きで呼び出せるように設計すると便利です。


ADVERTISEMENT

📄
Googleドキュメントトラブル完全解決データベースこの記事以外にも、書式・共有・Apps Script・引用など様々な困りごとへの解決策をまとめています。逆引きに活用してください。
この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。