Vibe Coding 実践:ゼロから作る為替レートクローラーボット
前章ではGoogle Apps Scriptの開発画面を開くことに成功しました。今度はこの画面を一旦置いておき、私たちの最強の開発パートナーであるCursor IDE(またはChatGPT、Claude)を開きましょう。
従来のITスクールの授業では、この段階で講師が黒板に次のような難解な内容を書き始めることが多いです:
「UrlFetchAppクラスとは何か?」
「JSON.parseとは何か?」
「SpreadsheetApp.getActiveSpreadsheet()とは何か?」
しかしVibe Coding(詠唱開発)の世界では、これらをすべて暗記する必要はありません! 知っておくべきことはただ一つ:「AIに業務要件を正確な中国語で説明する方法」です。
完璧なVibe Prompt(雰囲気詠唱呪文)の書き方
AIにGASで正しく動作するコードを一発で書かせるためには、呪文があいまいであってはいけません(例えば「為替レートを取得するプログラムを書いて」だけでは不十分です)。完璧な呪文には次の3つの要素が必要です:
- 役割と環境設定:AIにこれがGoogle Apps Script上で動作することを伝える(これによりAIがNode.jsやPythonのコードを書く可能性を大幅に減らせます)
- 入力ソース(Input):どこからデータを取得するか?特定のAPIはあるか?
- 出力先(Output):取得したデータをGoogleスプレッドシートのどこにどのように配置するか?
以下に基本的な呪文を用意しました。遠慮なくコピーしてAIツールに貼り付けてください:
【以下の基本Prompt呪文をコピーしてください】 あなたはプロのGoogle Apps Script (GAS)開発者です。 次のタスクを実行する関数を作成してください:
- GAS組み込みの
UrlFetchAppを使用して、無料の公開為替API(例:exchangerate-api)を呼び出し、「米ドルUSD」対「台湾ドルTWD」のリアルタイム為替レートを取得してください。- 取得した為替データをJSON解析してください。
SpreadsheetApp.getActiveSpreadsheet().getActiveSheet()を使用して、現在開いているスプレッドシートを取得してください。- 「スクリプト実行時の日時」をスプレッドシートのA列(A column)の最終行に追加してください(appendRow)。
- 解析した「米ドル為替レート数値」をスプレッドシートのB列(B column)の最終行に追加してください。
- 取得失敗に備え、コードには完全な
try-catchエラーハンドリングを含め、分かりやすい繁体字中国語のコメントを追加してください。
🌟 さらに高度なシナリオ用Prompt呪文集 (Bonus)
応用が利くよう、他の2つのビジネスシナリオ用呪文も特別に準備しました。為替レート以外を取得したい場合は、これらの呪文をお試しください!
シナリオA:株価追跡自動化呪文
【株価追跡専用Prompt】 あなたはプロのGoogle Apps Script (GAS)開発者です。 次のスクリプトを作成してください:
UrlFetchAppを使用して台湾証券取引所の公開APIまたはYahoo Finance APIから「TSMC (2330)」の本日の終値を取得してください。- 「現在の日付」をGoogleスプレッドシートのA列最終行に追加してくだ���い。
- 「TSMC終値」をB列最終行に追加してください。
- (上級)C列のコスト価格を確認し、B列の終値がC列を下回った場合、
MailApp.sendEmailを使用して警告メールを自動送信してください。
シナリオB:毎日天気アシスタント呪文
【天気自動記録Prompt】 あなたはプロのGoogle Apps Script (GAS)開発者です。 次のスクリプトを作成してください:
- 中央気象署のオープンデータAPI(後でキーを追加します)を呼び出し、「台北市」の明日の降水確率と最高気温を取得してください。
- 現在アクティブなGoogleスプレッドシートを取得してください。
- A列に日付、B列に気温、C列に降水確率を記入してください。
- キーを貼り付ける行が分かるよう、詳細な中国語コメントを追加してください。
コードをGASに貼り付けて実行
基本的な為替呪文を使用した場合、AIは通常次のようなコードを生成します(AIが生成する変数名は若干異なる場合がありますが、これは正常です):
function fetchExchangeRate() {
try {
// 1. キー不要の為替API URLを設定(USD基準)
const apiUrl = "https://open.er-api.com/v6/latest/USD";
// 2. UrlFetchAppでHTTPリクエストを送信
const response = UrlFetchApp.fetch(apiUrl);
const json = JSON.parse(response.getContentText());
// 3. JSONから台湾ドル(TWD)の為替レートを取得
const twdRate = json.rates.TWD;
// 4. 現在時刻を取得し、文字列にフォーマット
const now = new Date();
const timeString = Utilities.formatDate(now, Session.getScriptTimeZone(), "yyyy-MM-dd HH:mm:ss");
// 5. 現在アクティブなGoogleスプレッドシートを取得
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
// 6. 時刻と為替レートを「配列」形式でスプレッドシートの最終行に追加
sheet.appendRow([timeString, twdRate]);
// 7. GASの実行ログに成功メッセージを出力
Logger.log("成功!最新為替レートを記録:" + twdRate);
} catch (error) {
// エラーハンドリング:ネットワーク障害やAPI不調時の処理
Logger.log("重大なエラーが発生:" + error.toString());
}
}
主要操作手順:
- AIが生成したコードをすべてコピーします。
- Google Apps Scriptエディタのタブに戻ります。
- デフォルトの
function myFunction() { ... }を削除し、新しいコードを貼り付けます。 - エディタ上部の**「保存(フロッピーディスクアイコン)」**をクリック(またはCtrl+S/Cmd+S)。
- 上部のドロップダウンで
fetchExchangeRate関数が選択されていることを確認し、**「実行(Run)」**ボタンをクリックします。
🚨 初回実行時の権限審査(初心者が必ず驚く画面)
このスクリプトを初めて実行する際、Googleは「権限が必要です」という警告ウィンドウを表示します。このコードはスプレッドシートを操作したり外部サイトに接続したりする可能性があるため、Googleはこれが本人の承認によるものか確認する必要があります。
多くの初心者がこの段階で驚いて諦めてしまいますが、以下の手順に厳密に従ってください:
- ポップアップで**「権限を確認(Review Permissions)」**をクリック。
- ログインしているGoogleアカウントを選択。
- 「Googleはこのアプリを確認していません」という大きな赤い三角形が表示されます。心配無用!このアプリは3分前にAIで作成したものなので、Googleが確認していないのは当然です。
- 左下の灰色の**「詳細(Advanced)」**をクリック。
- 最下部に「『無題のプロジェクト』に移動(安全でない)」という行が表示されるのでクリック。
- 最終ページで、このプログラムが持つ権限(スプレッドシートの閲覧・編集、外部サービスへの接続など)が表示されるので、右下の**「許可(Allow)」**を大胆にクリック。
審査が通過すると、プログラムが正式に動作を開始します!
スプレッドシートを確認!自動化の魔法を目の当たりに
「自動為替追跡ツール」のGoogleスプレッドシートタブに戻り、何が起こったか確認してください。 A列に現在時刻が、B列に正確な米ドル為替レートが突然追加されているのがわかるでしょう!
GASインターフェースに戻り、もう一度「実行」を押すと、スプレッドシートにすぐに2行目のデータが追加されます!
おめでとうございます、あなたは人生初の自動化クローラースクリプトを完成させました!Vibe Codingを通じて、JSON.parseの原理を理解する必要すらなく、強力なクラウド自動化ツールを召喚できたのです。
🛠️ よくあるエラーとAIデバッグガイド (Troubleshooting)
Vibe Codingの過程で、AIも時々間違えます。「実行」を押した後、「実行ログ(Execution Log)」に赤いエラーメッセージが表示された場合は、次の「デバッグの心得」を適用してください:
心得:自分で直さず、AIに直させろ!
表示された赤いエラーメッセージ(Exceptionなどの文字も含む)をすべてコピーし、CursorやChatGPTに貼り付けて、次のデバッグ呪文を追加します:
【超強力デバッグPrompt】 Google Apps Scriptで先ほどのコードを実行したところ、次のエラーが発生しました:
[ここに赤いエラーメッセージを貼り付け。例:TypeError: Cannot read properties of undefined (reading 'TWD')]このエラーの原因は何ですか?APIのURLが既に無効になっているのでしょうか、それとも解析構造が間違っているのでしょうか? このエラーを修正し、確実に動作する更新版の完全なコードを提供してください。
AIはエラーメッセージを見て、「あっ、すみません、このAPIのレスポンス構造が変わっていました...」と気づき、すぐに正しいバージョンを提供してくれるでしょう。これがAIと共にプログラミングする最も魅力的な点です。
さらに高度なビジネス応用として、左側の「時計アイコン(トリガー)」をクリックし、このスクリプトが毎朝8時に自動実行されるように設定できます。これであなたは、永遠に給料を払う必要のない無料のロボットアシスタントを手に入れたことになります!