【Googleドキュメント】Apps Scriptでブックマーク自動生成!章タイトルからの作成

【Googleドキュメント】Apps Scriptでブックマーク自動生成!章タイトルからの作成
🛡️ 超解決

長いGoogleドキュメントを編集していると、特定の章に素早く移動したい場面が多くなるものです。手動でブックマークを設定するのは手間がかかり、見落としも発生しやすくなります。そんなときに役立つのが、Apps Scriptを使ったブックマークの自動生成です。この記事では、章タイトル(見出し)から自動的にブックマークを作成するスクリプトの作成手順を解説します。

【要点】Apps Scriptで見出しから自動ブックマークを作成する

  • スクリプトエディタの起動: ツールメニューからスクリプトエディタを開き、新しいプロジェクトを作成します。
  • スクリプトの記述と実行: 見出しを検出してブックマークを追加するコードを入力し、一度実行するだけで全見出しにブックマークが設定されます。
  • ブックマークの活用: 生成されたブックマークはリンク挿入時に一覧から選択でき、文書内の移動が格段にスムーズになります。

ADVERTISEMENT

Apps Scriptでブックマークを自動生成する仕組み

GoogleドキュメントのApps Scriptは、JavaScriptベースのスクリプト言語です。このスクリプトを使って文書内の要素を操作できます。ブックマークの自動生成では、文書内のすべての段落を調べ、見出しスタイル(Heading 1やHeading 2など)が適用された段落に対してブックマークを追加します。ブックマークは文書内の特定の位置を指し示すもので、リンクのターゲットとして利用できます。スクリプトを一度実行すれば、新しい見出しを追加したときも再実行するだけで簡単に更新できます。

ブックマークを自動生成する具体的な手順

ここからは、実際にスクリプトを作成して実行する手順を説明します。事前に文書内の各章が見出しスタイルでマークされていることを確認してください。

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

  1. メニューからスクリプトエディタを起動する
    Googleドキュメントを開き、上部メニューの「拡張機能」をクリックし、「Apps Script」を選択します。新しいタブでスクリプトエディタが開きます。
  2. プロジェクトに名前を付ける
    スクリプトエディタ左上の「無題のプロジェクト」をクリックし、わかりやすい名前(例:「ブックマーク自動生成」)に変更します。

スクリプトコードを記述する

  1. コードエディタにスクリプトを入力する
    デフォルトで表示されているコードをすべて削除し、以下のコードをコピーして貼り付けます。
    function createBookmarks() {
      var doc = DocumentApp.getActiveDocument();
      var body = doc.getBody();
      var paragraphs = body.getParagraphs();
      for (var i = 0; i < paragraphs.length; i++) {
        var element = paragraphs[i];
        if (element.getType() === DocumentApp.ElementType.PARAGRAPH) {
          var paragraph = element.asParagraph();
          var heading = paragraph.getHeading();
          if (heading === DocumentApp.ParagraphHeading.HEADING1 ||
              heading === DocumentApp.ParagraphHeading.HEADING2) {
            var text = paragraph.getText();
            if (text && text.length > 0) {
              doc.addBookmark(paragraph);
            }
          }
        }
      }
    }
  2. スクリプトを保存する
    メニューバーの「保存」アイコンをクリックするか、Ctrl+S(Macの場合はCmd+S)で保存します。

スクリプトを実行する

  1. 関数を選択して実行する
    コードエディタ上部の関数選択ドロップダウンで「createBookmarks」を選び、再生ボタン(▶)をクリックします。
  2. アクセス許可を承認する
    初回実行時には権限の確認ダイアログが表示されます。「権限を確認」をクリックし、自分のGoogleアカウントを選んで「許可」をクリックします。スクリプトが文書を編集するために必要な権限です。
  3. 実行結果を確認する
    スクリプトが正常に完了すると、文書内の見出し(Heading 1およびHeading 2)に対して自動的にブックマークが追加されます。ブックマークは「挿入」→「リンク」で表示されるリンク先選択の「ブックマーク」に一覧表示されます。

注意点とよくあるトラブル

見出しスタイルが適用されていないとブックマークが作成されない

スクリプトは「見出し1」または「見出し2」スタイルの段落のみを対象としています。太字やフォントサイズで見出しを表現しているだけの部分にはブックマークが付きません。事前に正しい見出しスタイルを適用しておく必要があります。

ブックマークの重複を避けるには

スクリプトを実行するたびにすべての見出しに対してブックマークが追加されるため、同じ位置に複数のブックマークが作成される可能性があります。対策として、スクリプト実行前に既存のブックマークをすべて削除するコードを追加するとよいでしょう。以下の関数を先に実行してからcreateBookmarksを実行してください。

function clearBookmarks() {
  var doc = DocumentApp.getActiveDocument();
  var bookmarks = doc.getBookmarks();
  for (var i = 0; i < bookmarks.length; i++) {
    bookmarks[i].remove();
  }
}

スクリプトがエラーになる場合

スクリプト実行時に「Exception: ~」というエラーが表示された場合は、文書内に空の見出しが含まれていないか確認してください。空の見出しに対してはブックマークが追加できないため、条件文でテキストの長さをチェックしていますが、まれに他の要素が混在しているとエラーが発生します。その場合はエラーメッセージを確認し、該当箇所を修正してください。

ADVERTISEMENT

手動のブックマーク作成との違い

比較項目 手動作成 Apps Script自動作成
作業時間 1件ごとに数秒、数十件なら数分 スクリプト実行で一瞬
ミスの発生 見落としや重複が起こりうる 正確に全見出しに付与される
更新のしやすさ 新しい見出しを追加するたびに手動でブックマーク付け直し スクリプトを再実行するだけ
カスタマイズ性 特定の見出しだけに付けたい場合に柔軟に対応可能 コードの修正で対象見出しレベルや条件を変更可能

まとめ

この記事では、Apps Scriptを使ってGoogleドキュメントの見出しから自動的にブックマークを作成する方法を紹介しました。スクリプトエディタでコードを記述し、実行するだけで、文書内のすべてのHeading 1やHeading 2にブックマークが設定されます。これにより、手動でのブックマーク設定の手間が省け、文書内の移動が大幅に効率化されます。さらに、clearBookmarks関数を組み合わせれば、ブックマークの重複を防ぎながら常に最新の状態に保つことも可能です。ぜひこのスクリプトを活用して、長文ドキュメントの編集や参照をよりスムーズに行ってください。


ADVERTISEMENT

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

超解決 第一編集部

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

SPONSORED