ドキュメント内で何度も登場する専門用語を、その都度説明するのは面倒ではありませんか。そこで便利なのが、用語集(Glossary)を自動更新する仕組みです。この記事では、GoogleドキュメントのApps Scriptを使って用語集を自動的に更新する方法を解説します。スクリプト一つで、用語の追加や定義変更を瞬時に反映できるようになります。
用語集を手動で維持するには、新しい用語が出てくるたびに定義を書き足したり、修正したりする手間がかかります。特に長文ドキュメントでは、用語の一貫性を保つのが難しくなりがちです。そこで、定義を一元管理し、ドキュメント内の特定の場所(例えば先頭の表)に自動的に反映させるスクリプトを紹介します。
この記事を読めば、用語集を最新の状態に保つための具体的な手順と、注意すべきポイントが分かります。さらに、スクリプトをカスタマイズして自分の用途に合わせる応用方法も理解できます。
【要点】Googleドキュメントの用語集をApps Scriptで自動更新する方法
- Apps Scriptによる自動化: スプレッドシートに用語と定義を保存し、スクリプトでドキュメントの表を更新します。用語が増えても手動で書き換える必要がなくなります。
- トリガーで定期的に更新: スクリプトに時間主導型トリガーを設定すれば、例えば毎日自動で用語集が最新になります。
- カスタムメニューで手動更新も可能: ドキュメントにカスタムメニューを追加し、ボタン一つで用語集を更新できるようにもできます。
ADVERTISEMENT
目次
用語集自動更新の仕組みと準備
ここでは、用語集を自動更新する仕組みの概要と、事前に準備するものを説明します。スクリプトを使うことで、ドキュメント内の特定の表(用語集)を、外部のデータソース(ここではGoogleスプレッドシート)から自動的に書き換えます。
準備するものは以下の3つです。
- 用語と定義を保存するGoogleスプレッドシート(1列目に用語、2列目に定義)
- 用語集を表示するGoogleドキュメント(先頭などに表を配置)
- Apps Scriptのコード(後述のサンプルをそのまま利用できます)
スプレッドシートの内容を変更すれば、ドキュメントの用語集が自動的に反映される仕組みです。ただし、初回のみスクリプトの実行許可が必要です。
用語集を自動更新する手順
以下の手順に沿って進めてください。手順は、スプレッドシートの準備、スクリプトの作成、トリガーの設定の3段階です。
ステップ1: スプレッドシートに用語データを用意する
- Googleスプレッドシートを新規作成します。
A列に用語、B列に定義を入力します。1行目はヘッダーとして「用語」「定義」と書いておくと便利です。2行目以降にデータを入れます。 - スプレッドシートのURLを控えます。
後でスクリプト内で使います。URLの「/edit」以降は不要で、ID部分だけを使います。
ステップ2: Googleドキュメントに用語集の表を配置する
- ドキュメントの先頭にカーソルを置きます。
「挿入」メニューから「表」を選び、1行2列の表を挿入します。この表が用語集の置き場所になります。ヘッダー行として「用語」「定義」と入力します。 - 表のIDを取得します。
スクリプトから表を特定するために、表にブックマークを付けるか、表のインデックスを使います。簡単なのは、ドキュメント内で最初の表(インデックス0)として扱う方法です。後でスクリプトで指定します。
ステップ3: Apps Scriptを作成して実行する
- ドキュメントの「拡張機能」メニューから「Apps Script」を開きます。
デフォルトのコード.gsファイルが表示されます。 - 以下のサンプルコードを貼り付けます。
スプレッドシートのIDとドキュメントのIDは実際のものに書き換えてください。
function updateGlossary() {
// スプレッドシートのID(URLの一部分)
var sheetId = 'YOUR_SPREADSHEET_ID';
var sheet = SpreadsheetApp.openById(sheetId).getActiveSheet();
var data = sheet.getDataRange().getValues();
// ドキュメントのID
var docId = 'YOUR_DOCUMENT_ID';
var doc = DocumentApp.openById(docId);
var body = doc.getBody();
// 最初の表(用語集)を取得
var tables = body.getTables();
if (tables.length === 0) {
// 表がない場合は新規作成
var table = body.insertTable(0, []);
} else {
var table = tables[0];
// 既存の行をクリア(ヘッダーは残す)
while (table.getNumRows() > 1) {
table.removeRow(table.getNumRows() - 1);
}
}
// データを行ごとに追加(ヘッダー行はスキップ)
for (var i = 1; i < data.length; i++) {
var row = data[i];
var term = row[0];
var definition = row[1];
if (term && definition) {
var tr = table.appendTableRow();
tr.appendTableCell().setText(term);
tr.appendTableCell().setText(definition);
}
}
}
- スクリプトを保存して実行します。
実行ボタンを押すと、初回は権限の確認画面が出ます。内容を確認して「許可」をクリックします。すると、スプレッドシートのデータがドキュメントの表に反映されます。 - 必要に応じてトリガーを設定します。
「トリガー」アイコン(時計マーク)をクリックし、「トリガーを追加」を選びます。関数「updateGlossary」を選択し、時間主導型(例:1時間おき)を設定します。これで自動更新が有効になります。
自動更新の注意点とよくあるトラブル
自動更新をスムーズに運用するために、以下の点に注意してください。
実行権限と承認のタイミング
初回実行時には、スクリプトがドキュメントとスプレッドシートにアクセスする権限を求めるダイアログが表示されます。内容をよく確認して「許可」してください。また、トリガーによる自動実行でも同様の権限が必要です。一度承認すれば、その後は求められません。
表のインデックスに関する注意
サンプルコードでは「ドキュメント内の最初の表」を更新対象としています。ドキュメントに他の表がある場合は、インデックス番号を変更するか、ブックマークを使って特定する必要があります。ブックマークを使う場合は、以下のように取得します。
var bookmark = body.getBookmark('glossaryTable');
var table = bookmark.getPosition().getElement().asTable();
スプレッドシートのデータ形式
スクリプトはA列とB列のデータを読み込みます。空白行や定義が空の行があると、その行はスキップされます。データは文字列として扱われるため、数値や日付もテキストとして表示されます。
実行制限とタイムアウト
Apps Scriptには1回の実行で30分の制限があります。用語数が数千行を超える場合は、一度に処理できない可能性があります。その場合は、データを分割するか、トリガーの間隔を短くして対応してください。
トリガーの重複を避ける
トリガーを複数設定すると、同じスクリプトが同時に実行されることがあります。それが問題になる場合は、トリガーを一つだけにし、間隔を十分に空けてください。
ADVERTISEMENT
手動更新と自動更新の比較
| 項目 | 手動更新 | 自動更新(Apps Script) |
|---|---|---|
| 更新の手間 | 用語が増えるたびに手で入力・修正 | スプレッドシートの編集のみで完了 |
| 一貫性 | 人によるばらつきが発生しやすい | 定義が常に一定でミスが減少 |
| 初期設定 | 不要 | スクリプト作成と権限承認が必要 |
| 更新頻度 | 任意(手動のタイミング) | トリガーで定期実行可能 |
| エラー発生時 | 目視確認が必要 | ログで確認、再実行で対処可能 |
まとめ
この記事では、Googleドキュメントの用語集をApps Scriptで自動更新する方法を解説しました。スプレッドシートで用語と定義を一元管理し、スクリプトでドキュメントの表を書き換える仕組みです。初期設定は少し手間ですが、一度動けば用語の追加や修正が極めて簡単になります。さらに、トリガーを設定すれば定期的な更新も自動化できます。次のステップとしては、スクリプトを拡張して、用語集を複数ドキュメントで共有したり、定義にハイパーリンクを付けたりする応用にも挑戦してみてください。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleドキュメントの人気記事ランキング
- 【Googleドキュメント】上付き・下付き文字の入力方法!ショートカットと手動切替
- 【Googleドキュメント】ルビ(ふりがな)を振る方法!代替ツールとアドオンの活用
- 【Googleドキュメント】文字間隔(字間)を調整する方法!カーニングの代替手段
- 【Googleドキュメント】図表番号の自動採番!Figure 1, Table 2 の連番
- 【Googleドキュメント】Docs→Wordへエクスポート!docx出力での書式維持
- 【Googleドキュメント】縦書き表示を実現する方法!代替ツールと回避策
- 【Googleドキュメント】インデントを正確に調整する方法!ルーラーとタブストップの使い方
- 【Googleドキュメント】罫線を縦・横に挿入する方法!Wordの罫線機能との比較
- 【Googleドキュメント】共有後に閲覧履歴を確認!誰がいつ開いたかの追跡
- 【Googleドキュメント】共有先の名前が表示されない時の対処!匿名動物アイコンの正体
