顧客向けの提案書(しかもパワーポイント)をゼロから作ってみたときの格闘の記録
今日の格闘の概要
Claude Code(アンソロピック社が提供するAIコーディングアシスタントで、チャット形式で指示を出すとファイルの読み書きやコード編集を代わりにやってくれるツールです)にブログ記事のドラフトを書いてもらう、という使い方を、わたしは今学習しています。何度もつまずきながらの学習です。
今回は、ブログ記事のドラフト案を書くところまでは何とかマスターできたので、初めて顧客向けのパワーポイントの提案書を作るという、もう少し実務に踏み込んだタスクをClaude Codeと一緒にやってみました。
題材にしたのは、ある不動産会社向けのウェブサイト制作のご提案書です。新規の制作プラン(Aプラン)と運用保守プラン(Bプラン)の2本立てで、実際に提案書として使えるレベルのPowerPointファイルを作るところまでやってみました。
実践したこと
全体の流れは、次の5つのフェーズに分かれています。
- 素材・骨子の準備(Claude Codeの外で行う下準備)
- VS Code側のプロジェクト構成づくり
- pptx(PowerPointファイルの拡張子です)の生成方式の選定
- 実際の制作フロー(アウトライン→レビュー→pptx生成→ビジュアル追加)
- 修正指示のプロンプト化と反復
まず素材・骨子の準備として、提案先・提案内容を具体的に決めました。これはClaude Codeの外で行う下準備で、企画の段階にあたります。頭の中で「これとこれをこう組み合わせて、この関係性があるからこうしよう」と考えながら、たたき台となる文章を準備していきました。今回は既存のWord原稿(プラン概要、課題、費用、納期などがまとまったテキスト)がすでにあったので、それを素材として使うことにしました。
次に、VS Codeで作業用のフォルダを新規作成しました。フォルダの中には、原稿ファイルを置く「インプット(input)」、生成物(アウトラインやPPTXファイル、つまりパワーポイントのファイル)を置く「アウトプット(output)」、Claude Codeが書いたPythonスクリプト(プログラムの指示書のようなファイル)を置く「スクリプト(scripts)」という、三つのフォルダを準備しました。
手順としては、VS Codeで「ファイル」→「フォルダーを開く」から対象フォルダを選び、「このフォルダー内のファイルの作成者を信頼しますか?」という警告が出るので、ここは「はい」を選択し、エクスプローラー上の「新しいフォルダー」アイコンから input と output を作成しました。
なぜこのインプットとアウトプットを分けたかというと、素材(人が――今回の場合はわたくしが――用意するもの)と生成物(AIが作るもの)が混ざらずに、後から見返したときに整理しやすくなるという利点があるからです。
続いて、PowerPointを生成する方式を選びました。選択肢は、Claude Codeにコードを書かせて実行しpptxを生成する「python-pptxライブラリ」と、スライド構成をMarkdownで作りツールでpptx化する「Markdown→変換ツール(Marpなど)」の2つがありました。今回は、Claude Codeの強み(コード実行とファイル操作)を体感したいという目的もあり、python-pptx方式を選びました。
実際の制作フローでは、いきなりClaude Codeで何かを始めるということはしませんでした。まず事前に、Claude Codeではなく、Claudeのウェブブラウザ版やChatGPT、Geminiなどのチャットを通じて、提案書の内容を何度もブラッシュアップしていきました。「この提案内容で問題ないか」「先方にとって利点はあるか」「こちらにとってデメリットは大きくないか」「この内容は先方の課題を解決するか」といった点を詰めていき、構成案(アウトライン)をMarkdown形式で出力するところまで、こうしたチャットAIを駆使してつくり込んでいきました。
生成されたアウトライン(構成案)を見て、1ページにこれだけの内容を詰め込みすぎていないか、という観点で見直し、内容が近いスライドを1枚に統合していきました。ただページ数を消費するのではなく、相手に余計な労力を使わせないよう、スライドを整理していきました。さらに、固有名詞(クライアント名など)をプレースホルダー(後から差し替えられる仮の記載)にして他案件にも使い回せるテンプレートにしたり、金額の根拠など口頭では説明できても文章にすると分かりにくい部分を整理したりしました。構成が固まったら、python-pptxでの生成をClaude Codeに依頼しました。最初に作ったのはAプランです。Aプランで土台ができたので、Bプランの資料はそれをベースに改修する形で作成しました。最初はテキスト中心のシンプルな資料でしたが、あとから図やイラストが欲しいと感じ、ビジュアル要素を追加していきました。このビジュアル要素の追加では少しつまずいた点があるので、次の「躓いたポイントと解決策」で詳しく解説します。
最終的なフェーズとしては、一度作って終わりではなく、スライドの統合・分割、特定の項目の削除・追記、金額表記や説明ロジックの調整といった細かい修正や調整を、何度も何度も繰り返したという経緯があります。
躓いたポイントと解決策
今回いちばん戸惑ったのは、フェーズ1の素材の渡し方でした。これまでは、ClaudeやChatGPT、Geminiなどの会話型のチャットAIで生成してもらったものをダウンロードして使う、という進め方をしていました。しかし、Claude Codeにどのように素材を渡せばいいのかがよく分からず、「チャット欄に貼り付けたテキスト」と「VS Code上のファイル」は別物である、という感覚が最初はつかめませんでした。せっかく整えた素材がなぜ読み込まれないのか、しばらくの間もどかしさを感じていました。原因は、Claude Codeがあくまで「ファイルを読み書きするエージェント」だということを理解していなかったためだと考えられます。チャット上でどれだけ長い文章をやり取りしても、それが実際にフォルダの中のファイルとして保存されない限り、Claude Codeはその内容を参照できません。ここは、ChatGPTのような「会話の中で完結するAI」との大きな違いだと感じ、少し戸惑うと同時に、なるほどそういう仕組みだったのかと納得もしました。解決策として、チャットでやり取りしたテキストは一度ダウンロードして、input フォルダに実際のファイルとして配置するようにし、これでようやく肩の力が抜けました。
次に戸惑ったのは、構成レビューの段階です。修正したい内容を音声入力でうまく言語化できないことが何度かありました。特に「なぜこの金額設定にしたのか」というロジックは、話し言葉では要点がまとまらず、自分でも何を伝えたいのか分からなくなって、少しもどかしい思いをしました。そこで、AIに一度整理してもらってから確認する、という進め方に切り替えたところ、結果的にスムーズに進み、ほっとしました。また、修正指示は一度にまとめて出す必要はなく、思いつくたびに小分けにして送り、最後に「以上です」と伝えれば、AI側が指示を溜めてから一括でプロンプト化してくれることも分かり、気持ちに余裕を持って進められるようになりました。
もう一つ戸惑ったのは、ビジュアル要素を追加する段階です。「AIイラストを入れたい」と意気込んでいましたが、Claude Code自体には画像生成機能がないことが分かり、正直なところ少しがっかりしました。写真調のイラストを入れるには、外部の画像生成AIとの連携が必要です。代替案として、矢印・四角・円などの図形を組み合わせたSVG図形(線と形の情報だけで描かれる画像形式です)による作図を採用したところ、追加のセットアップなしでその場で試すことができ、思っていたよりも十分にビジュアル面の改善ができて、うれしい誤算でした。
まとめと次回の目標
今回の格闘を通じて、次のことが分かりました。
- Claude Codeはチャット上のやり取りだけでは完結しません。素材は必ず実際のファイルとして input フォルダなどに置く必要があります。
- いきなり完成形を作らせず、構成案(アウトライン)→レビュー→生成、という2段階以上のステップを踏むと、手戻りが少なくなります。
- 画像生成とベクター図形(線と形で描く図形)は別物です。Claude Codeは「イラスト」は生成できませんが、「図形の組み合わせによる作図」は得意です。
- 一度作ったスクリプトは資産になります。似た資料を今後も作る予定があるなら、Pythonスクリプトとして残すこと自体が時短につながります。
- 音声入力でうまく説明できない内容は、AIに一度整理してもらってから確認すると、頭の中では分かっていても言葉にしづらい内容が整理しやすくなります。
今回の経験を通じて、Claude Codeは「文章を書いてもらうツール」以上に、「実際の成果物(ファイル)を一緒に作り上げていくパートナー」として使える手応えを感じました。