ChatGPTが書いたGoogle Apps ScriptでGoogleスライドを自動作成する方法

Google Apps Script GAS SlidesApp
ChatGPTが書いたGoogle Apps ScriptでGoogleスライドを自動作成する方法のイメージ

こんにちは!この記事では、ChatGPTが生成したサンプルコードを使って、Google Apps Script (GAS) でGoogle スライドを自動生成する方法をご紹介します。 手作業でスライドを作るのが大変な場合でも、GASとChatGPTを組み合わせれば、「タイトルや本文の挿入」「図形や画像の追加」などをまとめて自動化することが可能です。ぜひ参考にしてみてください。

1. Google Apps Script (GAS) とは?

Google Apps Script (GAS) は、Googleが提供しているクラウドベースのスクリプト環境です。Googleドライブやスプレッドシート、GmailなどのGoogleサービスと連携しながら、自動化やカスタマイズを行うことができます。 プログラミング言語としては、JavaScript(ES5互換)をベースにしているため、JavaScriptに慣れている方はスムーズに使いこなせるでしょう。

GASでスクリプトを作成する基本手順は以下の通りです。

  1. Script Editor(またはGoogle Cloudの新しいエディタ)を開く
  2. 新規プロジェクトを作成
  3. コードを入力し、保存・実行
完成したスライドのイメージ

2. SlidesApp サービスとは?

Google スライドを操作するためのサービスが SlidesApp です。これを利用すると、新しいプレゼンテーションの作成や、スライドへの画像・図形・テキストの挿入などがスクリプトを通して行えます。 公式ドキュメント(英語)を参照するとよいでしょう。

今回の記事では、ChatGPTが生成するサンプルコードを用いて、新しいプレゼンテーションを自動生成し、スライドごとに背景やテキストボックスを挿入する方法を解説します。

3. 実行前の準備

  1. Google ドライブにアクセスし、作成したスライドを保存するためのフォルダを用意(任意)
  2. Google Apps Script のエディタを開いて新規プロジェクトを作成
  3. ChatGPTが生成したコードあるいは、この記事のサンプルコード(後述)をコピーして貼り付ける

4. ChatGPTにコードの生成を依頼する

Google スライドを自動生成したい場合、ChatGPTにコード生成を依頼することで、作業を大幅に効率化できます。 たとえば以下のような流れでお願いすると、目的に合ったコードを返してもらいやすくなります。

4.1 目的・仕様を明確にする

  • 「どのようなプレゼンテーションを作りたいのか?」 例:OODAループの解説スライドを作成したい
  • 「スライドは何枚必要か?どんな内容を入れるのか?」 例:5~6枚ほどで、それぞれテーマと説明文を入れる
  • 「デザインやレイアウトの指定」 例:背景色はスライドごとに変えたい、フォントサイズは〇〇ptにしたい

4.2 ChatGPTへのプロンプト(例)

ChatGPT、Google Apps Scriptを使ってGoogle スライドを自動生成するコードを書いてください。
仕様は以下の通りです:
- プレゼンタイトルは「OODA Loop - Stylish Design」にする。
- スライドは6枚構成。
- それぞれ背景色・タイトル・本文を設定したい。
- 背景色はスライドごとに異なるカラーコードを指定。
- テキストは白色文字、フォントはHelvetica、タイトルは36ptで太字、本文は18pt。
- SlidesAppを使ってスライドを作成するJavaScriptコードをお願いします。

上記のようなプロンプトを与えると、ChatGPTは指定された条件に合わせたコードを返してくれます。細かいレイアウトや色味を変更したい場合には、続けて再度プロンプトを入力し、要件を追加・調整するとよいでしょう。

5. サンプルコード

以下のコードは、実際にChatGPTに生成してもらった例を少しカスタマイズし、OODAループの各ステップを説明するスライドを自動作成するサンプルです。

プロフィール画像

コードの再利用性を高めたい場合は、スライドのレイアウトや配色をパラメータ化しておくと便利ですよ!

function createOodaSlidesStylish() {
  const SLIDE_WIDTH = 960;
  const SLIDE_HEIGHT = 540;

  // 新規プレゼンテーションを作成
  const presentation = SlidesApp.create("OODA Loop - Stylish Design (No line spacing)");

  // デフォルトスライドを削除
  const defaultSlide = presentation.getSlides()[0];
  defaultSlide.remove();

  // スライドを作成する関数
  function createStylishSlide(title, body, bgColor) {
    const slide = presentation.appendSlide(SlidesApp.PredefinedLayout.BLANK);

    // 背景用四角形を挿入
    const bgRect = slide.insertShape(
      SlidesApp.ShapeType.RECTANGLE, 
      0, 
      0, 
      SLIDE_WIDTH, 
      SLIDE_HEIGHT
    );
    bgRect.getFill().setSolidFill(bgColor);

    // タイトルテキスト
    const titleBox = slide.insertTextBox(title, 80, 80, 800, 80);
    const titleRange = titleBox.getText();
    titleRange.getTextStyle()
      .setFontFamily("Helvetica")
      .setFontSize(36)
      .setBold(true)
      .setForegroundColor("#FFFFFF");

    // 本文テキスト
    const bodyBox = slide.insertTextBox(body, 80, 200, 800, 260);
    const bodyRange = bodyBox.getText();
    bodyRange.getTextStyle()
      .setFontFamily("Helvetica")
      .setFontSize(18)
      .setForegroundColor("#FFFFFF");
  }

  // 各スライドを追加
  createStylishSlide(
    "OODA Loop Overview",
    "OODA とは Observe・Orient・Decide・Act の頭文字をとった意思決定のフレームワークです。",
    "#2C3E50"
  );
  createStylishSlide(
    "1. Observe(観察)",
    "まずは周囲の状況を正確に把握し、必要なデータを収集します。",
    "#34495E"
  );
  createStylishSlide(
    "2. Orient(方向づけ)",
    "収集した情報を自身の知識や経験と照らし合わせ、次のアクションの方向を定める段階です。",
    "#16A085"
  );
  createStylishSlide(
    "3. Decide(判断)",
    "方向性が定まったら行動を決断します。状況の変化に備え、柔軟さも重要です。",
    "#27AE60"
  );
  createStylishSlide(
    "4. Act(実行)",
    "決めた行動を実行し、その結果を再び観察ステップで評価してループを回します。",
    "#2980B9"
  );
  createStylishSlide(
    "まとめ",
    "この4ステップを素早く繰り返すことで、不確実性の高い環境でも高い成果が期待できます。",
    "#8E44AD"
  );

  // 作成したプレゼンテーションのURLをログに出力
  Logger.log("Created presentation URL: " + presentation.getUrl());
}

6. 実行方法

  1. スクリプトエディタに上記コードを貼り付けて保存。
  2. メイン関数(createOodaSlidesStylish)を選択し、実行ボタンをクリック。
  3. 初回実行時は認証が必要です。警告メッセージが出た場合は[詳細]をクリックして認証を進めましょう。
  4. 実行完了後、「表示 → ログ」を開き、表示されたURLからスライドを確認できます。

7. 応用例・まとめ

今回のサンプルコードでは、スライドに背景色・タイトル・本文テキストボックスを挿入する流れをご紹介しました。 SlidesApp をうまく活用すれば、以下のような処理も簡単に実装できます。

  • スプレッドシート上のデータを読み込み、その内容をスライドに自動反映
  • 毎日定時にトリガーを設定し、レポート用のスライドを自動生成
  • 図形や表、画像などを駆使し、よりリッチなプレゼンテーションを作成

もし、さらに高度なテキスト編集やオブジェクト操作が必要な場合は、Google Slides API(拡張サービス)の利用も検討してみてください。Apps Script内で拡張サービスを有効にすることで、標準のSlidesAppにはない機能も扱いやすくなります。

Google Apps ScriptでGoogleスライドを自動作成する方法に関するよくある質問

Q1. コードを修正したら自動的にスライドは更新されますか?

コードを修正して再度実行しない限り、既存のスライドは自動更新されません。新しいスライドを生成するか、既存スライドを更新するコードを作成する必要があります。

Q2. 背景画像や画像挿入も自動化できますか?

はい、SlidesAppや拡張サービスのGoogle Slides APIを使うことで、背景画像や挿入画像のURLを指定して自動化が可能です。

Q3. 毎日決まった時刻に実行したい場合はどうすればよいですか?

Apps Scriptの「トリガー」機能を使うことで、時間ベースのトリガーを設定し、スクリプトを自動的に実行させることができます。