Google ドキュメントの拡張

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

基本情報

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

どちらの場合も、Apps Script の Document Service を使用する例を示します。 説明します。

function createDoc() {
  var doc = DocumentApp.create('Sample Document');
  var body = doc.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 ドライブに新しいドキュメントを作成し、 ドキュメント名と同じテキストを含む段落、 段落を見出しとして指定し、 2 次元配列になります。スクリプトも同じように簡単にコードを 呼び出しを置き換えて既存のドキュメントに DocumentApp.create() 参加者: DocumentApp.openById() または openByUrl()。 ドキュメント内で作成されたスクリプト(コンテナバインド)の場合は、 DocumentApp.getActiveDocument()

ドキュメントの構造

Apps Script の観点からは、Google ドキュメントは HTML によく似た構造になっています。 ドキュメント。つまり、Google ドキュメントはさまざまな要素( Paragraph または Table など)に他の属性が含まれることが多い あります。Google ドキュメントを変更するスクリプトのほとんどは、 getBody() です。これは、 Body は、 その他すべての要素が含まれますが、 HeaderSection, FooterSectionFootnotes

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

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

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

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

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

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

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

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

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

function searchAndReplace() {
  var body = DocumentApp.getActiveDocument()
      .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 のカスタム メニューをご覧ください。 シンプルトリガーはメニューの追加には便利ですが、アプリは使用できません。 承認が必要なスクリプト サービス。