Building a document collection tool with vibe coding using Claude Code Desktop in 30 minutes
English text is being prepared.
The author used Claude Code Desktop in a vibe coding style to build a document collection tool in about 30 minutes: it reads two Excel files—a customer list and a submission status sheet—first lists the non-submitters for manual confirmation, then outputs draft collection emails, and registers with Windows Task Scheduler to run automatically every Monday at 8:00. The article writes the requirements into CLAUDE.md, uses manual approval mode throughout, and notes that one should consult engineers and legal before involving real customer personal data.
Why read this
AI score 63
The original article documents the full 30-minute process of using Claude Code Desktop, from writing CLAUDE.md to registering a scheduled task, which can be adapted to other repetitive business scenarios.
Topics
Body
第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
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が書き出しの前後で変わっていないことも、ファイルの中身から計算した値で確かめてくれました。
図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のような符号に置き換えただけでは、ほかの情報と照合できるかぎり個人情報のままです。
この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では、ソフトの導入は情報システムの手順に従ってください。