ChatGPTにGAS全部書かせて日程調整アプリ作る!
初めに
こちらの記事は身の回りの困りごとを楽しく解決! by Works Human Intelligence Advent Calendar 2023シリーズ2 4日目の記事です。
株式会社DELTAの伊藤です。DELTAはこんな会社です↓↓↓
こんな感じで作ってるよという紹介記事になります。
~かんたんな自己紹介~
簡単に自己紹介を。前職スーパーのお魚屋さんで昨年4月にDELTAに入社(初のIT企業)した非エンジニアです。役割としては固定されておらず、かなりフレキシブルに各所のお手伝いをしています。GASの勉強はDELTAに入社してからのため約1年程。簡単な業務改善としてGASを触るような感じ。
最近は特に採用側の窓口を担当していて面談日等の各種調整をすべて受け持っています。
作りたいもの
2つのGoogleカレンダーの空き時間を検索して、任意の時間に予定を入れられるWEBアプリ
なぜ作ろうと思ったか?
理由①「ChatGPTと仲良くなりたい」
「存在しない曲出てきた」とか「存在しないリンク教えられた」みたいなのとかいろんな評判を聞くので興味はありましたが、実際に使ってみる機会がなかったので、GASって調べることだらけで大変だから試しに文章入力するだけでどこまで出来るのか見てみたいという割と軽いノリです。
理由②「日程調整めっちゃしんどい」
自己紹介でも書いた通り各所のお手伝いをしている私は採用管理もアシスタントとして入っています。そのため面接の日程調整をするんですが、カレンダーって全然空きないんですよ…。MTG、商談、1on1、面談、またMTGみたいな…。弊社の面接は基本的に代表と事業開発の二名体制のため、この人たちのカレンダー調整するのめちゃくちゃ大変です。
ある程度GASの知識もついていたので「GASで良い感じに空き時間抽出できるかも…?」ということで、ChatGPTを持て余した私にちょうどいい課題でした。
やってみた
やること
①2つのカレンダーの空き時間から重複している空き時間を抽出
・10時から20時の間(20時以降から翌日10時より前は空き時間に含まない)
・土日祝を除く
・形式:yyyy/mm/dd(曜日) HH:mm - HH:mm
②スプレッドシートに一覧にする
簡単なことから始めるつもりで、すでに入ってる予定を取得してみることに。
ChatGPTが書いたコードを丸っとコピー
エディタに貼り付けて実行
取得できましたね。さっそく空き時間を取得してもらいたいと思います。
エラーが出たので丸っとコピーして貼り付け
修正したらしいもので実行すると?
空き時間が取得できました。
と、こんな感じでがつがつ進めていった結果、目的のスプレッドシートに二人の空き時間一覧を表示することに成功。
この時点での反応
空き時間を一覧化できたため、どうせならフォームから空き時間に直接予定入れられたら便利だよねと思い、スプレッドシートとフォームを用意して「雑だけどこんなの作ってみました」と見せるとかなり好評でした。
フィードバックもらったところ、Googleフォームもスプレッドシートも出来ることの限界があるため、ここで思い切ってWEBアプリにしてみようと思い立ってChatGPTに相談しました。
アプリ画面で出来るようにしたいこと
①二つのメールアドレス(カレンダーID)を入力する
②「検索」ボタンを押したらGASが起動して空き時間の一覧が表示される
③「コピー」ボタンを押したら一覧通りにペースト出来るようにコピーされる
④フォーム機能を付けて30分枠や1時間枠でカレンダーに予定を入れられる
※④はまだ開発中のため、③まで進んでいます
HTMLはちらっと勉強した程度でほとんど知識がないに等しいため、ここもかなりChatGPTに頑張ってもらいます。
最初の画面はこんな感じ(分かりやすいように枠を付けてます)↓
スプシでもフォームでもできないことが『ワンクリックでコピー』だったので、一番最初につけた機能がこれでした。
そしてこちらが現在使用中の空き時間検索アプリの画面です↓
①メールアドレスを検索バーに入力
②『検索』を押すと検索開始(ちょっと時間がかかる)
③空き時間の一覧表が表示される
④『コピー』を押すと表の通りにコピーできる
今のところはここまでしかできていません。フォーム機能を付けるのが案外難しいです。理屈は分かるので、周りにいるプロフェッショナルの方々に聞いた方が早いだろうなと思いながらも、自身の勉強のついでのためChatGPTに聞いては心が折れそうになりながら、失敗試行錯誤を繰り返してます。
大変だったところ
ChatGPTに欲しい動作を要求し続けるのはもちろん大変なんですが、何より自分以外が書いたコードのためどんなロジックで動いてるのか読み解くのに時間がかかります。ある程度勉強していたとはいえ、知らない命令がでてくると途端にその先も分からなくなってしまうんですよね。だからChatGPTに指示を出してる自分でもどの指示は反映されていて、どの指示は正しく反映されていないのか見極めるのが大変でした。(コードの分からない部分は「料理に例えて」と言うと分かりやすく教えてくれたので、自分の得意分野に例えてもらうのはめっちゃおすすめです!)
あと今回はChatGPTを使用することが目的の半分だったので、あえて分かるところも手を加えず指示を修正する方法をとっていたためかなり時間を費やしています。
最後に
エラーが出ても動くものが出来るまでAIと向き合うってなんかロマンがありますよね笑
実際かなり大変ではあるんですが、一文変えたら次はどんな風に出力されるんだろうと楽しみな部分もあります。なかなか進められていないながらも、現時点で社内の人からはかなりの高評価をいただいてるので、作って良かったなと思います。
ちなみにまだまだChatGPTと仲良くなるために、「晩御飯にこういう感じの料理教えて」とか「○○みたいな口調で話してみて」とか意味のない会話をすることもあります。前に「○○さん(芸能人)について教えてください」と聞いたら、聞いたことのない経歴が返ってきたため、へー知らなかった!!と思って調べたところ嘘でした。騙されそうになりました。簡単に回答が得られて便利な反面、そのくらい危ういものなので、手放しで何でも頼るのは危険ですね。気を付けます。
We're hiring!
Discussion