ChatGPTでGASを書いて、SNS記事を効率的に作成する方法

目次

はじめに

「毎日続けることって、想像以上に大変ですよね…」

私は最近、Kindleで出版した本の中で「タロットカードを毎日引いてみましょう」という提案をさせていただきました。
でも、タロットカードに馴染みがない方や初心者の方も多いだろうなと考え、サポートとして自分が引いたカードの解説を毎日Instagramとメルマガでシェアすることにしました。

ちなみに、Kindle本はこちら。

あわせて読みたい
【好評発売中】タロットと遊んで未来を創る方法~リアル宝探しゲーム編~ 本書では、タロットカードを「リアル宝探しゲーム」のヒントとして活用する提案をしています。 https://www.amazon.co.jp/dp/B0DSGY4YD3?&linkCode=sl1&tag=tsu...

「継続は力なり」とよく言いますが、私は、継続こそが、思いもかけない遠いところまで自分を連れて行ってくれるエンジンだと確信しています。

いま、この発信も40日を超えました。ただ…正直になところ、毎日の作業にはそれなりに時間がかかります。

時間をかけたくなかった作業の一つが、SNSやメルマガの記事作成。
タロットカードの解釈を間違えないように確認し、文章を練り、投稿用に整形する…。
手作業での確認作業は意外と時間がかかりますし、時にはミスも…😅

「これ、もっと効率的にできないかな?」

そんな思いから、次のような工夫を始めました

  1. タロットカードの解釈をGoogleスプレッドシートで一覧化
  2. 投稿文のテンプレートをGoogleドキュメントで作成
  3. この2つを連携させて、自動で記事を生成する

これを実現させるためには、「Google Apps Script」というプログラムを使います。

でも、私は全く使ったことありません。
それでも実現したい。どうすればいい…?

そこで使ったのが、ChatGPT。

「Google Apps Script」初心者の私の質問に丁寧に答えてくれて、表やテンプレートの作成も含めて、わずか1時間半で仕組みが完成しました!

「えっ、こんなに簡単にできるの!?」

この驚きと感動が冷めてしまわないうちに、シェアしたいと思います。
私のように知識がなくても、AIの力を借りれば、こんなことが実現します。

それでは、いってみましょう。

Google Apps ScriptとGoogleスプレッドシートの基礎知識

Google Apps Scriptって、どんなもの?

Google Apps Script(通称:GAS)は、私たちがよく使うGoogleのサービスを自動化させたり、サービス同士を「仲良く連携させる」ための魔法の呪文のようなものです。
スプレッドシートやドキュメント、Gmail、カレンダーなど、普段使っているGoogleツールをコントロールできるようになります。

特に素晴らしいのは、次の2点。

  1. すぐに始められる
    • 特別なソフトをインストールする必要なし
    • ブラウザさえあれば、すぐにコードが書ける
    • Googleドライブ上で直接編集OK
  2. いろんなツールと連携できる
    • スプレッドシートのデータから報告書を自動作成
    • 定期的なメール送信を自動化
    • カレンダーに予定を自動登録 …などなど、可能性は無限大

なぜ今、連携が注目されているの?

日常業務を思い浮かべてみてください。こんな作業、ありませんか?

  • 毎日のデータ入力作業
  • 週次・月次の報告書作成
  • 顧客情報の更新と管理
  • …etc

これらの作業、実は Google Apps Script を使えば、大部分を自動化できるんです。

自動化で得られるメリット

  1. 時間の節約
    • かけていた時間が1/3に
    • 空いた時間で他の重要な仕事に集中できる
  2. ミスの防止
    • 手入力による転記ミスを防げる
    • 計算などがある場合も間違いがなくなる
  3. リアルタイム処理
    • 常に最新データを使って処理
    • 情報のズレやタイムラグを解消

こんな使い方ができます(私の事例)

私が今回つくった仕組みでは、次のようなことができます。

SNS記事・メルマガ記事の生成

  1. スプレッドシートでタロットカードの意味を一元管理
  2. 配信日と「今日のカード」を指定
  3. ボタンをポチッとクリック
  4. すると…
    • テンプレートに情報を埋め込み
    • 配信記事を自動生成
    • 指定したフォルダに自動保存

まさに、ボタン一つで魔法のように完了します。

スプレッドシートの便利機能

Google スプレッドシートも、なかなか協力なツールです。例えば

📊 便利な関数を活用

  • TEXT関数で数値を見やすく整形
  • TO_TEXT関数で日付を好みの形式に変換

🎯 カスタマイズも自由自在

  • 独自のメニューを追加
  • 便利なボタンを設置
  • 使う人に合わせた操作画面を作成

これらの機能を組み合わせることで、まるでオーダーメイドのシステムのような使い心地を実現できます。

次の章は、私が実際にAIと対話しながら、これらの機能をどのように実装していくのかの記録です。

AIとの対話からプログラムを書く

ここでは、私がChatGPTと実際にやり取りした内容をご紹介します。
「こんなことができたらいいな」という願いが、AIの力を借りてどのように実現できたのか、具体的に見ていきましょう。

1️⃣ テンプレートを使った文書の自動生成

こんな悩みがありました

「スプレッドシートに入力した情報を、いちいちコピー&ペーストして配信原稿を作るのが大変…」

ChatGPTに相談

Googleスプレッドシートの特定の行の情報を、Googleドキュメントの定型文の中に差し込んで新しいドキュメントファイル生成させるにはどうしたらいいですか?

テンプレートを使って文書を自動生成する方法を、手順とサンプルコードを出して、とても丁寧に教えてくれました。

どうやって設置したらいいの?

そう尋ねると、Google Apps Scriptのエディタをどうやって開くのかや、どうやって保存するのか、認証の手順は?というような手順を教えてくれました。

コピーしたドキュメントは、これで同じフォルダ内に入りますか?

こう聞くと、同じフォルダ内に入るようにコードを書き換えて示してくれました。

具体的な手順

1.まず、テンプレートドキュメントを用意

  • 文書の中に {{名前}}{{日付}} といった目印を入れておく

2.スプレッドシートから情報を取得

  • 例:2行目の情報を使って新しい文書を作る

3.自動で置き換えと保存

  • 目印の部分が、スプレッドシートの情報で自動的に置き換わる
  • 新しい文書として保存される

まるで「コピー&ペーストの達人」が瞬時に作業してくれるような感じです。

2️⃣ エラー解決の実例

困った時の状況

Exception: The parameters ((class),DriveApp.Folder) don't match the method signature for DriveApp.File.makeCopy.

…という謎のエラーメッセージが出てしまいました。

ChatGPTの解決策

「あ、それは文字列の扱い方に問題があるということね」と、すぐに原因を特定。
日付を特殊な値ではなく、文字列として認識させる必要があるということ。

解決のポイント

  • セルの値を取得する時は getDisplayValue() を使う
  • 必要に応じて String() で文字列に変換する
  • エラーの原因を確認するための Logger.log の使い方も教えてもらえました

これで、エラーとはお別れ。

3️⃣ 便利なボタンの作り方

やりたかったこと

「スクリプトの実行、もっと簡単にできないかな…」

ChatGPTからの提案

このスクリプトを稼働させるボタンをつくりたいんだけど、どうしたらいい?

そう尋ねると、スプレッドシート上に、クリックひとつで実行できるボタンを作る方法を教えてくれました。

実装手順

  1. 「挿入」→「描画」でボタンを作成
  2. ボタンを右クリック→「スクリプトを割り当て」
  3. 実行したい関数名を入力

事前に Apps Script に定義している関数名はどこを見たらいい?

この問いに対しても、どの部分を参照したらいいか、手順を示してくれました。

4⃣ 実際にできあがったスクリプトがこちら

function tarotcreateDocFromTemplate() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
    // テンプレートドキュメントのIDを指定(実際のシート名に置き換えてください)
  var sheet = ss.getSheetByName("tarotlist");
  
  // セル A2 の値をドキュメントタイトルとして取得
  var docTitle = sheet.getRange(2, 1).getDisplayValue();
  
  // 2行目の全データ取得(プレースホルダー置換用)
  var rowData = sheet.getRange(2, 1, 1, sheet.getLastColumn()).getValues()[0];
  var date = rowData[2]; // 例としてC列の値
  var card1  = rowData[3]; // 例としてD列の値
  var card0  = rowData[4]; // 例としてE列の値
  var meaning  = rowData[5]; // 例としてF列の値
  var url  = rowData[6]; // 例としてG列の値



  
  // テンプレートドキュメントのIDを指定(実際のテンプレートIDに置き換えてください)
  var templateId = "実際のテンプレートID";
  var templateFile = DriveApp.getFileById(templateId);
  
  // テンプレートファイルの親フォルダを取得(テンプレートが複数のフォルダに入っている場合、最初のフォルダを使用)
  var parentFolders = templateFile.getParents();
  var folder;
  if (parentFolders.hasNext()) {
    folder = parentFolders.next();
  }
  
  // テンプレートをコピーして新規ドキュメントを作成
  var newDocFile;
  if (folder) {
    // 親フォルダが取得できた場合はそのフォルダ内にコピーを作成
    newDocFile = templateFile.makeCopy(docTitle, folder);
  } else {
    // 取得できなければ、デフォルト(マイドライブのルート)にコピー作成
    newDocFile = templateFile.makeCopy(docTitle);
  }
  
  var newDocId = newDocFile.getId();
  var doc = DocumentApp.openById(newDocId);
  var body = doc.getBody();
  
  // テンプレート内のプレースホルダーを置換
  body.replaceText("{{date}}", date);
  body.replaceText("{{card1}}", card1);
  body.replaceText("{{card0}}", card0);
  body.replaceText("{{meaning}}", meaning);
  body.replaceText("{{url}}", url);
  
  doc.saveAndClose();
  
  Logger.log("作成したドキュメントのURL: " + doc.getUrl());
}

元になるGoogleスプレッドシートはこちら

差し込まれるGoogleドキュメントのテンプレートはこちら


「タロット宝さがし」{{date}}。
今日は{{card0}}「{{card1}}」をヒントに、あなたの宝物を探してみましょう!

このカードは、一般的に{{meaning}}などを象徴しています。
でも、その解釈に従う必要は全然ありません。
自由な発想で、宝のありかを考えてみてください!

そして、カードをヒントにあなたが見つけた「宝物」を教えていただけると嬉しいです。
もしよければ、あなたの宝物も教えてください。


※Kindle電子書籍で解説本が出ました

「タロットと遊んで未来をつくる方法~リアル宝探しゲーム編 ~」
プロフィールページのリンクからご覧ください。


#タロット宝探し
#タロット宝さがし
#タロットカード
#タロット
#タロット勉強中
#タロット初心者
#直感
#インスピレーション


========メルマガ========

「タロット宝さがし」{{date}}。
今日は{{card0}}「{{card1}}」をヒントに、あなたの宝物を探してみましょう!
※カードの絵柄は以下のページをご覧ください
{{url}}

このカードは、一般的に{{meaning}}などを象徴しています。

実際に差し込まれて完成したファイル

📝 まとめ:AIとの対話で分かったこと

今回の経験で、たくさんの発見がありました

  • 思いついたアイデアを、具体的な実装方法まで導いてくれる
  • エラーが出ても、原因と解決策をすぐに教えてくれる
  • テンプレートIDがどうやったら見つかるかも具体的な操作方法を教えてくれる
  • ボタンの作り方がわからなくても操作方法を教えてくれる
  • 「こうしたい」という思いを、実際の機能として形にできる

特に印象的だったのは、AIが単なる「答え」だけでなく、「なぜそうするのか」「どんな選択肢があるのか」まで、丁寧に説明してくれることです。

まさにプログラムの専門家が隣にいるような心強さを感じました。

さいごに:「AIでこんなこともできる!」これからの可能性

最後にまとめです。

🌟 AIが教えてくれた「できる!」の世界

その1:まるで親切な先生のような丁寧さ

「どうやってやるの?」という質問に対して

  • テンプレートを使った文書の自動生成方法
  • エラーが出たときのデバッグの仕方
  • 使いやすいボタンの作り方
    …など、まるで隣で教えてもらっているかのように、具体的な手順を示してくれました。

その2:初心者でも安心の分かりやすさ

「難しそう…」という不安もすぐに吹き飛びました。

  • コード例は丁寧なコメントが入っていて分かりやすい
  • 操作手順は細かいステップに分解されている
  • 「なぜそうするのか」の説明も丁寧

Google Apps Script初心者の私でも、「あ、これならできそう」となりました。

その3:困ったときの心強い味方

予期せぬエラーに遭遇しても大丈夫。

  • エラーの原因を分かりやすく説明
  • 具体的な解決策を提案(例:getDisplayValue()の使い方)
  • デバッグの方法まで丁寧にレクチャー

トラブル解決のスピードが、驚くほど速かったです。

🎯 背中を押してくれる存在・それがAI

「私にできるかな…」

そんな不安を感じている方もいらっしゃるかもしれません。
でも、大丈夫です!今回の記事でご紹介したように、AIは私たちの「できた!」をサポートしてくれる強力な味方ですから。

もしよければ、こんなことから始めてみませんか?

  1. 自分の仕事の中で「自動化できそうだな」と思う作業を見つける
  2. ChatGPTに相談してみる
  3. 少しずつ試してみる

失敗しても大丈夫。AIが親切に教えてくれますので。

🚀 さいごに

今回ご紹介した私の事例は、AI活用や自動化の可能性のごくごく一部に過ぎません。
これからも新しい発見があるたびにシェアしていきたいと思います!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次