跳到正文
gihyo.jp·· 4 小時前AI 評分69

用 Claude Code 進行氛圍編碼,30 分鐘製作業務應用程式

Claude Codeを使ったバイブコーディングで30分で業務アプリを作ってみよう

AI 導讀

作者示範以 Claude Code 進行氛圍編碼,約 30 分鐘製作一款資料催收工具,從兩份 Excel 找出未交資料,並按客戶建立催收電郵草稿。工具會先列出催收對象及資料,待人手批准後才輸出清單和草稿,電郵仍由人手發送;每週排程也只會自動執行至確認步驟。文章以虛構資料示範,並提醒使用真實客戶資料前須確認組織規則及個人資料處理範圍。

正文

第1回では、Claudeの新機能で「自分で作れる範囲」が広がったことと、それでもエンジニアに任せる領域があることを見ました。

今回は一歩進めて、業務アプリそのものを作ります。使うのはClaude Code(クロードコード)です。プログラムを書くためのAIエージェントですが、ターミナルは使いません。デスクトップ版を開き、日本語で要件を書き、作らせて、試験用のデータで動かすところまでを30分でやってみましょう。

今回はバイブコーディングという手法でアプリを作成します。コードを一行ずつ自分で書くのではなく、日本語で目的と条件を伝え、AIに実装させながら確認・修正する作り方です。

なお、今回の題材は、思いつきで選んだものではありません。「⁠現場で長く使われる業務アプリとは何か」という観点から選んでいます。その理由は後半で説明しますので、ぜひ最後までお読みください。

1|資料回収の催促ツールを30分で作ってみよう

この回で作るもの⁠・前提⁠・所要時間

  • 作るもの:顧客リスト(Excel)と資料の提出状況から、未提出の資料を洗い出し、顧客ごとに催促メールの下書きを作るツール。実行前に「誰に・何を催促するか」の一覧を見せ、人が承認してから下書きを出す
  • 前提:Claudeのデスクトップアプリ(Windows版。Macは読み替えを注記)と、Pythonが入ったPC(入っていなければ、記事末の「付録」を参照⁠)⁠。ターミナルは使わない。筆者はMaxプランで試したが、Claude Codeが使えるプランなら同じ。画面は2026年10月時点のもの
  • 所要時間:約30分(筆者の環境では、作業フォルダの用意から下書きの書き出しまで25分、定期実行の登録まで入れて30分ほど。うちClaudeの生成待ちは10分ほど。承認を求められる回数が多いので、余裕を見てください)
  • 使うデータ:すべて架空。表1・表2をExcelに貼って使う

手順に入る前に、できあがりの全体像を次の図で押さえておきます。

上の段が「作るとき」です。人が要件を日本語でCLAUDE.mdに書き、Claude Codeがそれを読んで、計画を見せ、承認を得て、催促ツール.pyを作ります。

下の段が「動かすとき」で、動くのはPythonのプログラムだけです。顧客リストと提出状況の2つのExcelを読み、まず「誰に・何を催促するか」の一覧を表示して止まります。人が承認すると、未提出一覧と催促メールの下書きを書き出します。毎週の自動実行(手順4)は、この「確認」までをタスク スケジューラが起動します。メールを送るのは、最後まで人です。

右下の「将来の拡張」は、このあとの「ブラッシュアップ」で触れます。

図1 今回つくるものの全体像。上段が「作るとき」(人 → CLAUDE.md → Claude Code → 催促ツール.py)、下段が「動かすとき」(2つのExcel → 確認 → 人が承認 → 書き出し → 人が読んで送る)。タスク スケジューラは確認だけを起動し、右下に将来の拡張(APIでスプレッドシート・チャットツールへ)を示す

手順1 Claude Codeのデスクトップ版を開き⁠、作業フォルダを決める

Claudeのデスクトップアプリを開き、サイドバーの上にある「</>」のアイコンを押すと、Claude Codeの画面に切り替わります。「⁠環境を選択」から「新しい環境」を選び、名前(ここでは「催促ツール⁠」⁠)と作業フォルダを指定して「環境を作成」を押します。フォルダは空のものを一つ作っておきます。ここが、このツールの置き場になります。初めてのフォルダでは「このワークスペースを信頼しますか?」と聞かれるので、「⁠ワークスペースを信頼」を押します。

図2 「新しい環境」に名前と作業フォルダを入れたところ

フォルダを決めたら、承認モードを確認します。画面の下に「自動」と出ていたら、そこを押して「手動(変更前に常に確認する⁠)⁠」に切り替えてください。「⁠自動」はClaudeが権限の判断を自分で行うモード、「⁠手動」はファイルを作る・書き換える・コマンドを実行する前に、毎回こちらの承認を待つモードです。

なお、最初は「手動」にしてください。何をされるかが読めるようになるまで、緩めないのがコツです。

図3 承認モードのメニュー「権限・このセッション」

手順2 CLAUDE.mdに要件を書く

作業フォルダに、CLAUDE.mdというファイルを作ります。Claude Codeが最初に読む「このフォルダの決まりごと」です。ここに、何を、いつ、誰に、どこまで自動で、どこで人が確かめるかを書きます。

Claude Codeの入力欄に「CLAUDE.mdを作ってください。中身は次のとおりです。」と打ち、続けて次を貼り付けて送信します。

# 資料回収の催促ツール
## 目的
顧客ごとの資料の提出状況を見て、未提出の資料を洗い出し、催促メールの下書きを作る。
## 入力
- 顧客リスト.xlsx(列:顧客ID、会社名、担当者名、メールアドレス、顧問開始年)
- 提出状況.xlsx(列:顧客ID、資料名、期限、提出日。提出日が空欄なら未提出)
## 出力
- 未提出一覧.xlsx(顧客ごとに、未提出の資料名と期限を並べる)
- 催促メール/ フォルダに、顧客ごとのメール下書き(テキストファイル)
## 決まりごと
- 実行する前に、「誰に・何を催促するか」の一覧を表示して、承認を待つ
- メールは送らない。下書きを作るだけ
- 期限を過ぎているものと、期限前のものは、文面を変える(過ぎているものは丁寧に、前のものは軽く)
- 顧客リストと提出状況は読むだけ。書き換えない
- 元ファイルの件数と、処理した件数を最後に報告する

送信すると、「⁠ClaudeにCLAUDE.mdの書き込みを許可しますか?」という承認のカードが出て、これから書く中身が見えます。ここで一つ注意があります。黒い大きなボタンは「常に許可」です。これを押すと、同じ種類の操作は以後確認なしで進みます(どの範囲・いつまでかは操作の種類で違います⁠)⁠。慣れるまでは、ボタンの右端の「∨」を押して「一度だけ許可」を選んでください。

図4 CLAUDE.mdの書き込みを求める承認カード。これから書く中身が見える

このCLAUDE.mdが、連載を通して一番大事なものです。要件を日本語で書いておくと、Claude Codeはセッションを開くたびにこれを読み込み、その前提を以後のやり取りで参照します。

できあがったプログラムはCLAUDE.mdを読まずに動きますが、Claude Codeにこのフォルダで何かを頼むとき(文面を直す、列を足す、不具合を見る)は、新しいセッションでも必ずCLAUDE.mdに書いた前提を共有したうえで作業できるようにしています。「⁠メールは送らない」「⁠元ファイルは書き換えない」のような禁止事項は、ここに日本語で書きます。

ただし、書いただけで必ず守られるわけではありません。プログラムも「確認だけ」と「書き出し」を分けて作らせ、実行前の一覧と承認(手順3)で、人が止められる形にします。

手順3 作らせて⁠、試験用データで動かす

試験用のデータを用意します。表1と表2をExcelに貼り、それぞれ「顧客リスト.xlsx」「⁠提出状況.xlsx」として作業フォルダに保存してください。

表1 顧客リスト(架空)
顧客ID 会社名 担当者名 メールアドレス 顧問開始年
C001 青葉工務店 担当A a@example.com 2021
C002 みなと食品 担当B b@example.com 2023
C003 さくら美容室 担当C c@example.com 2024
表2 提出状況(架空・一部)
顧客ID 資料名 期限 提出日
C001 10月分の出勤簿 2026/11/05
C001 賃金台帳 2026/11/05 2026/10/30
C002 10月分の出勤簿 2026/11/05
C002 雇用契約書(新規2名) 2026/10/31
C003 10月分の出勤簿 2026/11/05 2026/11/02

(提出日が空欄は、未提出)

Claude Codeに、次のように指示します。

CLAUDE.mdのとおりにツールを作ってください。作る前に、どんなファイルを作るか計画を見せてください。

Claude Codeは、まず作業フォルダの中身とPythonの有無を確かめます。このとき、読み取りだけのコマンドでも承認を求めてくるので(フォルダの中のファイルを読むだけなら聞かれません⁠)⁠、内容を見て「一度だけ許可」を押します。そのうえで計画を出します。「⁠催促ツール.py(本体⁠)⁠」⁠「⁠未提出一覧.xlsx(実行すると作られる⁠)⁠」⁠「⁠催促メール/ の下書き」と作るものが表になり、動き方は「まず確認だけ、承認をもらったら書き出し」の2段階だと説明されます。最後に「この計画で作り始めてよいですか?」と聞いてくるので、「⁠この計画で作る」を押します。

図5 Claude Codeが提示した計画。作るファイルの表

筆者の環境では、ここでClaude Codeが一つ指摘をしてきました。「⁠表2の期限はすべて今日より後なので、今日を基準にすると期限切れが1件も出ない」というものです。

そのうえで、判定の基準日を指定できる形にしてくれました。このあと出てくる未提出一覧と催促メールの下書きの画面は、基準日を本記事の掲載日である11月3日にして動かした結果です。

承認すると、プログラムが作られます。本体を書き込むときに承認のカードが出るほか、Claude Codeは本番のフォルダを汚さないよう、一時フォルダのコピーで文面やおかしなデータの扱いを試します。このときもコマンドの承認が続くので、内容を見ながら「一度だけ許可」を押していきます。別の窓を見ているときは、Windowsの通知からも許可できます。承認は、ここまでで10回ほどでした。

試験が終わると、CLAUDE.mdに書いた決まりごとのとおりに進みます。本番のフォルダでは確認だけを動かし、「⁠誰に・何を催促するか」の一覧を表示して、「⁠この内容で本番の書き出しを行いますか?」と承認を待ちます。

図6 実行前に表示された催促の一覧。顧客・宛先・文面の種類・催促する資料が並ぶ

一覧を見て、おかしな行があれば直させます。たとえば、期限前なのに「期限切れ」の文面になっていたら、「⁠C001の出勤簿は期限前なので、軽い文面にして」と伝えます。「⁠書き出す」を押し、書き出しのコマンドを許可すると、未提出一覧.xlsxと、顧客ごとの下書きができます。

図7 できあがった未提出一覧.xlsxをExcelで開いたところ。「状態」の列に期限切れと期限前が出る
図8 催促メールの下書きの一つ。期限を過ぎた資料とこれから期限の資料を1通にまとめた丁寧な文面

下書きの末尾は「⁠(⁠ここに署名を入れてください⁠)⁠」の仮置きになっています。決まった署名があれば、CLAUDE.mdに書いておけば入れてくれます。

最後に、Claude Codeが件数を報告します。筆者の環境では「顧客リスト3件、提出状況5件。内訳は提出済み2件、未提出で一覧に載せたもの3件、除外0件で、合計5件と一致」「⁠催促するのは2社で、下書きを2通」でした。あわせて、元の2つのExcelが書き出しの前後で変わっていないことも、ファイルの中身から計算した値で確かめてくれました。

この数字が元の表と合っているかを、自分の目でも確かめます。AIに任せた作業は、必ず元と照合してください。

図9 件数の報告

手順4 定期実行にする

毎週月曜の朝に自動で動くようにします。これもClaude Codeに指示します。

このツールを、毎週月曜の朝8時に自動で実行するように、Windowsのタスクスケジューラに登録してください。登録する前に、何を登録するか見せてください。

Claude Codeは、タスクの名前・実行するコマンド・作業フォルダ・日時・実行するユーザー・PCが切れていたときの扱いを表にして見せます。

そして、ここで筆者が感心した指摘が出ました。「⁠CLAUDE.mdの『承認を待つ』という決まりと、無人の自動実行がぶつかる」というのです。選択肢は「確認だけ自動にする」か「書き出しまで自動」の2つですが、今回は前者を選びます。

月曜の朝に一覧を作るところまでを自動にし、書き出しは人が承認してから、という形です。毎週動くのは、一覧を作るPythonのプログラムです。Claude Code自体が毎週動くわけではありません。

登録のコマンドを許可すると、タスクが登録されます。登録後は、タスク スケジューラを開いて、登録されたタスクを自分の目で確認してください。

図10 Claude Codeが見せた登録内容の表と、「自動実行はどちらの形にしますか?」の問い
図11 タスク スケジューラに登録されたタスク。トリガーは「毎週月曜日、8:00に起動」

ここまでで約30分です。

チャットやスプレッドシートとつないでブラッシュアップしよう

動いたら、データの入口と出口を広げてみます。たとえば、未提出一覧をGoogleスプレッドシートに書き出し、催促の下書きをチャットツールに投げます。ClaudeにはMCP(Model Context Protocol)という仕組みがあり、Claudeがスプレッドシートやチャットを直接操作できます。書籍の第10章では、MCPでつなぐ手順を紹介しています。

ただ、毎週動かす業務アプリとして考えると、筆者はMCPではなくAPIで直接つなぐことを勧めます。理由は次のとおりです。

注意点 ここから先はエンジニアの領域

今回のツールは、連載第1回の線引きの表の左の列に収まっています。自分一人が使い、架空のデータで動かし、壊れても手作業に戻せ、CLAUDE.mdを読めば何をしているか説明できます。

本物の顧客データで動かす前に、右の列に踏み込んでいないかを確かめてください。顧客リストには個人情報(担当者名・メールアドレス)が入ります。組織のルールでClaudeに送ってよいとされたデータだけにします。担当者名やメールアドレスを顧客IDのような符号に置き換えただけでは、ほかの情報と照合できるかぎり個人情報のままです。

  1. 送ってよい範囲は組織のルールで確かめる
  2. 送信は人がやる、を守れているか
  3. 止まったときに気づける仕組みがあるか

この3点のどれかで迷ったら、エンジニア(社内の開発部門や、取引先のシステム会社)に相談する段階です。個人情報が絡むときは、情報システムや法務の担当にも相談します。相談するときは、CLAUDE.mdをそのまま見せてください。要件が日本語で書いてあるので、話が早く進みます。

業種を越えて繰り返す5つの型

資料回収の催促は、思いつきで選んだ題材ではありません。筆者は、国内の主要な200の業種・業態を「時間を食う業務は何か」「⁠そのうちAIで減らせる部分はどこか」「⁠人が残す判断は何か」の3つの軸で整理してきました。業種が違っても同じ形の業務が繰り返し現れ、次の5つの型にまとまります。

表3 業種を越えて繰り返す業務アプリの5つの型
型 中身 例
催促・回収型 出していない人・払っていない人を洗い出し、催促の下書きを作る 社労士や税理士の資料回収、建設業の請求書回収
フォロー型 一度接点のあった相手に、適切な間隔で次の一手を出す 自動車販売店の点検案内、不動産の内見後フォロー
下書き型 定型の文書・報告を、材料から下書きする 介護記録、日報、議事録
一次対応型 問い合わせを分類し、定型なら返し、例外は人に回す 歯科の予約変更、通販の配送問い合わせ
点検型 書類やデータの抜け・矛盾を機械的に点検する 社労士の届出書類、飲食店の発注表

5つに共通するのは、「⁠AIが最後まで決めない」ことです。たとえば、催促メールは下書きまでで、送るのは人です。問い合わせは分類と定型返信までで、例外は人が扱います。この境目は、第1回の線引きでいう「壊れても手作業に戻せる」範囲と重なります。

自分の仕事で次に何を作るかを選ぶときも、この5つの型が基準になります。逆に、作っても使われなくなるアプリには、本人しか使えない(引き継げない⁠)⁠、例外が来ると止まる、データの入口が手作業のまま(結局、転記が残る)という共通点があります。

今回作成したツールが、要件をCLAUDE.mdに残し、例外を人に回し、Excelをそのまま読む形にしてあるのは、これらを避けるためです。

非エンジニアがアプリを作れるようになって何が変わったか

この型が分かると、仕事の進め方も変わります。

以前は、お客様の業務をヒアリングしてから、何を作るかを考えていました。いまは、業種が分かれば仮説を立て、試験用のデータでアプリを先に作り、動いているものを見せてから聞きます。「⁠御社では、この催促の基準はどうなっていますか」と、動くものを前にして聞く方が、答えが具体的になるからです。

これは、エンジニアの側にも起きている変化だと思います。AIで業務の理解が速くなった分、「⁠業務サイドの人が開発に近づく」のと同時に、「⁠エンジニアが業務に近づく」ことも起きています。

結び

今回は、実際に使える業務アプリをClaude Codeを使ってバイブコーディングで30分で作成しました。同時に入力していいデータの切り分け方についても解説しました。

次回は、作ったツールを使い続けるための「記憶」と「守り」の仕組みです。Claude Codeは、新しいセッションでは前回の会話を引き継ぎません。決まりごとや判断の理由をフォルダの中のファイルに残し、次のセッションに確実に渡す方法を、実際に作りながら紹介します。

注意⁠:Pythonが入っていないとき

手順3のプログラムはPythonで動きます。お使いのPCにPythonが入っていなければ、Claude Codeに「Pythonを入れたい。入れ方を見せて」と頼んでください。Windowsなら、wingetが使える環境ではそれで入れる方法を、使えない場合はPython公式のインストーラーを使う方法を案内してきます(wingetはWindows 11や新しめのWindows 10で使えますが、会社の管理端末などでは使えないことがあります⁠)⁠。内容を見て承認すれば、Claude Codeが進めます。Excelを読み書きする部品(openpyxl)が無い場合も、作る前にClaude Codeが気づいて、入れ方を案内します。会社のPCでは、ソフトの導入は情報システムの手順に従ってください。

來源:gihyo.jp · gihyo.jp