前回、私はあなたに「殺意のメモ」を取るという宿題を出した。
日常の業務の中で感じる「面倒くさい」「ダルい」というドス黒い感情こそが、自動化のエネルギー源だからだ。
手元にメモはあるだろうか?
「この転記作業を消し去りたい」「このメール返信を自動化したい」
素晴らしい。そのドロドロとした怠惰な欲望こそ、私が求めていたものだ。
だが、ここで多くの人が致命的なミスを犯す。
その欲望を、そのままの温度感でAIにぶつけてしまうのだ。
「ねえ、この面倒な作業をなんとなくいい感じで自動化してよ!」
断言しよう。AIはその瞬間、あなたを「無能な上司」認定する。
そして、適当なコードを吐き出し、エラーの海にあなたを突き落とすだろう。
今回は、あなたの頭の中にある「ふわっとした欲望」を、AIが確実に理解できる「命令書」に変える技術、名付けて「思考の翻訳術」を伝授する。
これができれば、あなたはもうコードを書く必要はない。日本語で指示を出すだけで、AIという超優秀な執事を操れるようになる。
AIは「空気」を読まない。「文字」しか読まない
まず、AI(そしてコンピュータ全般)の性格を理解しておこう。
彼らは、「言われたことはやるが、言われていないことは絶対にやらない(あるいは勝手な解釈で暴走する)」という、極めて融通の利かない性格をしている。
「あれ」「それ」で動くのは熟年夫婦だけだ
人間同士の会話なら、「例の件、よしなにやっといて」で通じることもあるだろう。文脈、相手の顔色、過去の経験から「察する」ことができるからだ。
しかし、AIに「よしなに」は通用しない。
【悪い例:人間感覚の指示】
「届いたメールにお礼の返信をしといて。あ、変なメールには返さなくていいから」
これをAIに投げるとどうなるか?
AIはパニックになる。
- 「『変なメール』の定義は何ですか? スパムですか? クレームですか? それとも件名がないメールですか?」
- 「『お礼』とは? どのような文面ですか? 敬語レベルは? 絵文字は使いますか?」
結果、AIは「変なメール」の判断基準を勝手に作り上げ(例えば『件名に”あ”が含まれるメール』などという謎ルール)、重要顧客からのメールをゴミ箱に叩き込むかもしれない。
AIに対して「察してほしい」と願うのはやめよう。
それは「言わなくても私の気持ち分かってよ!」とパートナーに詰め寄る面倒な恋人と同じだ。いずれ破局(エラー)が待っている。
プログラミングとは「英語を書くこと」ではない
多くの初心者が誤解しているが、プログラミングとは function だの var だのといった英語の呪文を覚えることではない。
「やりたいことの因果関係を整理し、順序立てて説明すること」。これがプログラミングの本質だ。
コードを書く作業(コーディング)は、最後に日本語をプログラミング言語に置き換えるだけの「翻訳作業」に過ぎない。
そして今、その「最後の翻訳」はAIが完璧にやってくれる。
つまり、あなたがやるべきことは、「感情的な日本語」を「論理的な日本語(箇条書き)」に変換することだけなのだ。
脳内垂れ流し vs 翻訳後の世界
具体的に見てみよう。
ここに、「Webサイトからのお問い合わせメールをスプレッドシートに記録したい」という欲望があるとする。
【× 翻訳前:脳内垂れ流し(感情ベース)】
「お問い合わせメールが来たらさ、自動でスプシに書いといてよ。いちいちコピペすんのダルいんだわ。あ、日付とかもよろしく。」
このままAI(ChatGPTなど)に投げると、十中八九、動かないか、期待外れのコードが返ってくる。
「件名は? 本文のどこを抽出するの? トリガーは?」といった情報が欠落しているからだ。
【○ 翻訳後:ロジカル箇条書き(論理ベース)】
- 対象: Gmailとスプレッドシート
- トリガー: 件名に「【お問い合わせ】」を含むメールを受信した時
- 取得データ:
- 受信日時
- 送信元メールアドレス
- 本文の1行目(名前と仮定)
- 処理: スプレッドシートの「シート1」の最終行に追加する
- 通知: 処理が終わったら自分に「完了したよ」とSlackで送る
見てほしい。英語のコードは一文字もない。
だが、ここまで具体的になっていれば、これがそのまま「設計書(仕様書)」になる。
これをAIに貼り付けるだけで、AIは迷うことなく完璧なGASコードを生成できるのだ。
「思考の翻訳」を成功させる3つのステップ
では、どうすれば「ダルい」という感情をここまで綺麗な箇条書きにできるのか?
以下の3つのステップ(フレームワーク)を使えば、誰でも簡単に翻訳できる。
ステップ1:登場人物(ツール)を指名手配する
まず、その作業には「誰(どのアプリ)」が関わっているかを明確にする。
GASで操作できるのは主にGoogleのサービスだ。
- 情報はどこにある? → Gmail? カレンダー? スプレッドシート?
- どこに出力したい? → スプレッドシート? Slack? LINE?
「なんかいい感じで」ではなく、「Gmailから取ってきて、スプレッドシートに書く」と、場所(固有名詞)を特定する。
ステップ2:トリガー(引き金)を決める
いつ、その魔法を発動させたいのか?
AIは24時間待機しているが、合図がないと動けない。
- 時間主導: 「毎日 朝9時に」「毎週月曜日に」「毎月1日に」
- イベント主導: 「スプレッドシートを編集した瞬間に」「メールが届いた瞬間に」「フォームが送信された瞬間に」
- 手動: 「ボタンを押した時に(メニューから実行)」
初心者はここを忘れがちだ。「いつでもいいからやっといて」は通用しない。「いつやるか」を決めろ。
ステップ3:入力・加工・出力を「サンドイッチ」にする
これが最重要だ。すべてのプログラムは「入力→加工→出力」のサンドイッチでできている。
- 入力(Input): 何のデータを読み込むか?(例:B列の数字、メールの本文)
- 加工(Process): それをどうするか?(例:2倍にする、”様”をつける、条件でフィルタリングする)
- 出力(Output): 結果をどこに置くか?(例:C列に書き込む、メールで送信する)
この3つが揃っていれば、どんな複雑なツールも作れる。
【実践例】「未読メール撲滅委員会」の思考翻訳
では、実際に翻訳の練習をしてみよう。
お題: 「重要そうなメールが埋もれるのが怖いから、特定の人からのメールだけLINEに通知してほしい」
1. 悪い指示(感情のまま)
「上司からのメール見逃したら死ぬから、LINEに送って。なる早で。」
→ AIの困惑ポイント:「上司って誰?」「死ぬ=緊急度?」「なる早って1分おきにチェックするの?」
2. 思考の翻訳プロセス
- 登場人物は?
- Gmail(監視対象)
- LINE Notify(通知先)※「LINE」とだけ言うとAIは迷うので、APIを使う場合はLINE Notifyが一般的。ここはAIに聞いてもいい。
- トリガーは?
- リアルタイムがいいけど、GASの仕様上難しいから「10分おき」にチェックさせよう。
- サンドイッチ(入・加・出)は?
- 入力: Gmailの未読メールの中で、送信者が
boss@example.comのもの。 - 加工: そのメールの「件名」と「受信日時」を抜き出す。抜き出したら、Gmail側は「既読」にする(何度も通知しないため)。
- 出力: LINE Notify APIを使って、スマホにメッセージを送る。
- 入力: Gmailの未読メールの中で、送信者が
3. 完成した「AIへの指示(プロンプト)」
以下のGASコードを作成してください。
やりたいこと:
Gmailの新着メールをチェックし、特定のアドレスからのメールだったらLINEに通知を送りたい。
仕様:
- 検索条件: 未読メール かつ 送信元が
boss@example.com- 処理:
- 条件に合うメールを取得
- そのメールの「件名」と「日付」を取得
- LINE Notify APIを使用して通知を送る(トークンは
TOKEN_HEREとして変数にしておいて)- 処理したメールは「既読」にする
- トリガー: この関数を10分ごとに実行する想定
どうだろうか?
これだけ具体的であれば、AIは一発で動作するコードを書いてくれる。
あなたは生成されたコードをコピーし、指定された場所にトークンを貼り付けるだけでいい。
今日のまとめと次回の予告
-
AIは察しない: あなたの「なんとなく」は、AIにとってのエラーだ。
-
プログラミング=言語化: コードを書く必要はない。日本語の箇条書きを書け。
-
3要素を抑えろ: 「登場人物(アプリ)」「トリガー(いつ)」「サンドイッチ(何をする)」が決まれば勝てる。
次回、いよいよ「マインドセット編」の最終回だ。
あなたの前には「環境構築」という名の壁……いや、かつて壁だったものが存在する。
GASとスプレッドシートがなぜ「最強の時短ツール」なのか。そして、どうやってその世界に足を踏み入れるのか。
黒い画面(ターミナル)を見て蕁麻疹が出た過去を持つあなたにこそ、次回の記事を読んでほしい。
ブラウザ一つで、あなたは創造主になれる。
コメント