Google ドキュメントの拡張

Google Apps Script では、プログラムによって Google ドキュメントを作成、変更できます。 新しいメニュー、ダイアログ ボックス、 追加できます

基本情報

Apps Script では、次の 2 つの方法で Google ドキュメントとやり取りできます。 ユーザーがドキュメントの作成や編集を行えるようにするには、スクリプトの できます。また、スクリプトを使用して ドキュメントにバインドされ、 ユーザー インターフェースを変更したり、 ドキュメントが開きます。コンテナにバインドされたスクリプトを Google ドキュメント内から作成するには、 [拡張機能] > [Apps Script] をクリックします。

どちらの場合も、Google Chat を使用して Google ドキュメントで Apps Script の Document Service を使用する例を示します。 説明します。

function createDoc() {
  var doc = DocumentApp.create('Sample Document');
  var documentTab = doc.getTab('t.0').asDocumentTab();
  var body = documentTab.getBody();
  var rowsData = [['Plants', 'Animals'], ['Ficus', 'Goat'], ['Basil', 'Cat'], ['Moss', 'Frog']];
  body.insertParagraph(0, doc.getName())
      .setHeading(DocumentApp.ParagraphHeading.HEADING1);
  table = body.appendTable(rowsData);
  table.getRow(0).editAsText().setBold(true);
}

上記のスクリプトにより、ユーザーの Google ドライブに新しいドキュメントが作成され、 ID t.0 のタブ(デフォルトの最初のタブ)を取得し、段落を挿入します ドキュメント名と同じテキストを含む場合は、その段落を heading を使用し、2 次元配列の値に基づいてテーブルを追加します。「 既存のドキュメントにこれらの変更を 簡単に加えることができます DocumentApp.create() の呼び出しを置き換えます。 参加者: DocumentApp.openById() または openByUrl()。 ドキュメント内で作成されたスクリプト(コンテナバインド)の場合は、 DocumentApp.getActiveDocument() および Document.getActiveTab()

ドキュメントの構造

Apps Script の観点から見ると、Google ドキュメント ドキュメントは HTML ドキュメントによく似ています。つまり、ドキュメントは 1 つ以上の Tab オブジェクト(各オブジェクトには、 要素(例: ParagraphTable など)に他の要素が含まれることが多い あります。Google ドキュメントのドキュメントを変更するほとんどのスクリプトは、 getTab()asDocumentTab() それに続いて getBody()Body がコア要素であるため、 その他すべての要素がタブ内にありますが、 HeaderSection, FooterSection、その他すべて Footnotes

ただし、どのタイプの要素に他の型を含めることができるかについては、ルールがあります。 さらに、Apps Script の Document Service では、 他の要素に変えることができます。下のツリーは 要素は、特定のタイプの要素に含めることができます。

太字の要素は挿入可能です。太字でない要素は 悪用される可能性があります。

テキストを置き換えています

Apps Script は、Google ドキュメント内のテキストの置換によく使用されます。たとえば クライアント情報が満載のスプレッドシートで、パーソナライズされた 各クライアントに Google ドキュメントを割り当てる。(この種の操作は、メール merge.)

テキストの置き換えにはさまざまな方法がありますが、最も簡単なのは replaceText() メソッド(以下の例を参照)replaceText はほとんどをサポート (JavaScript の正規表現機能の一部)最初の関数は、 Google ドキュメントに数行のプレースホルダ テキストを追加します。ですから、 自分でドキュメントにプレースホルダを入力する可能性が高くなります。「 2 番目の関数は、プレースホルダを client オブジェクト。

どちらの関数も getActiveDocument() および getActiveTab() メソッド: Google ドキュメントのドキュメント内で作成されたスクリプトにのみ適用されます。 使用する場合は、 DocumentApp.create()openById() または openByUrl() Document.getTab() の組み合わせ、 してください。

プレースホルダを追加する

function createPlaceholders() {
  var body = DocumentApp.getActiveDocument().getActiveTab().asDocumentTab().getBody();
  body.appendParagraph('{name}');
  body.appendParagraph('{address}');
  body.appendParagraph('{city} {state} {zip}');
}

プレースホルダを置き換える

function searchAndReplace() {
  var body = DocumentApp.getActiveDocument().getActiveTab().asDocumentTab().getBody();
  var client = {
    name: 'Joe Script-Guru',
    address: '100 Script Rd',
    city: 'Scriptville',
    state: 'GA',
    zip: 94043
  };

  body.replaceText('{name}', client.name);
  body.replaceText('{address}', client.address);
  body.replaceText('{city}', client.city);
  body.replaceText('{state}', client.state);
  body.replaceText('{zip}', client.zip);
}

カスタム メニューとユーザー インターフェース

メニュー、ダイアログ ボックス、 追加できますただし、スクリプトが UI とやり取りできるのは 開いているドキュメントの現在のインスタンスが表示され、スクリプトが ドキュメントにバインドされます。

カスタム メニューを追加する方法と ダイアログを Google ドキュメントに追加します。 ダイアログやサイドバーのカスタム インターフェースの作成について詳しくは、 HTML Service のガイドをご覧ください。 API の一部としてカスタム インターフェースを公開することを計画している場合、 アドオンを使用する場合は、 スタイルガイドを参照してください。 カスタマイズすることもできます。

Google ドキュメント向けアドオン

アドオン: Google ドキュメント内で実行され、インストール可能 Google ドキュメントアドオンストアから 利用できますGoogle ドキュメント用のスクリプトを開発して 世界中と共有したい場合は、Apps Script で 公開する 他のユーザーがアドオンストアからインストールできるようにする必要があります。

Google ドキュメントのアドオンを作成する方法については、 ドキュメント アドオンを作成するためのクイックスタートをご覧ください。

トリガー

Google にバインドされるスクリプト ドキュメントはシンプルなトリガーを使用して応答できる ドキュメントの onOpen イベントに 編集権限を持つユーザーが Google ドキュメントでドキュメントを開くたびに発生します。

onOpen() という関数を記述するだけで、トリガーを設定できます。例 Google Workspace のカスタム メニューをご覧ください。 シンプルトリガーはメニューの追加には便利ですが、アプリは使用できません。 承認が必要なスクリプト サービス。