🤖

Claude CodeにPowerPointの起動と生成したSVGファイルの貼り付けをさせてみました

に公開

はじめに

以前投稿した以下の記事で、PowerPointの起動とローカル上のSVGファイルのスライド資料への貼り付けができるPowerShellスクリプトを紹介しました。
https://zenn.dev/kobashuu/articles/1da1ddb50ef172

今回は、Claude Codeに「スライド資料に貼り付けるためのSVGファイルの生成」から「上記のPowerShellスクリプトの実行」までの一連の操作を実行させることで、PowerPointのスライド資料を生成する方法を紹介します。

説明の前提

  • Windows PCを使用すること
  • Power Pointのデスクトップ版がPCにインストールされていること
  • Claude CodeがPCにインストールされていること

今回使用した環境

  • Windows 11 Pro 24H2
  • PowerShell 5.1.26100.4652
  • PowerPoint 2507 (クイック実行)
  • Claude Code 1.103.0

準備

PowerShellのスクリプトファイルをローカル上に作成する

まずは以下の記事で紹介したスクリプトをローカル上にファイルで保存してください。
ファイル名は任意ですが、ここでは「svg2pptx.ps1」というファイル名で保存されたものとして説明をします。
https://zenn.dev/kobashuu/articles/1da1ddb50ef172

ローカル上の任意のフォルダ上でClaude Codeを起動し/initコマンドを実行する

今回紹介する手順では、複数のSVGファイルとPPTXファイルの生成を行うためのフォルダが必要です。そのフォルダを任意の方法で新規作成します。作成後、コマンドプロンプトでそのフォルダに移動します。

cd {作成したフォルダのフルパス}

移動後、以下のコマンドを実行してClaude Codeを起動します。

claude

Claude Codeにフォルダ内のファイルを信頼するかどうかを確認されたら、適宜回答してください。

起動したら、Claude Code上で以下のコマンドを実行し、処理が完了するまで待ちます。

/init

Claude Codeにコマンド実行をするかどうかの確認が行われたら、適宜回答してください。

Claude Codeを一度終了する

ここでClaude Codeを一度終了します。

/exit

CLAUDE.mdファイルを上書きする

/initコマンドにより生成されたCLAUDE.mdファイルを、以下の内容で上書きします。その際、「{svg2pptx.ps1ファイルのフルパス}」の箇所は、実行する環境に合わせて適切なフルパスの文字列に置き換えてください。

CLAUDE.md
# CLAUDE.md
このファイルは、このリポジトリのコードを扱う際にClaude Code (claude.ai/code) へのガイダンスを提供します。

## プロジェクト概要
このプロジェクトはPowerPointのスライド資料を作成するためのものです。

## PowerPointのスライド資料の作成手順

1. 現在の日時を名前に含んだフォルダを新規作成する
2. そのフォルダ内にスライド資料の各ページの内容をSVG形式ファイルとして作成する
3. SVG形式ファイルをPowerPointのスライド資料に変換して、同じフォルダ内に保存する
4. 作成したPowerPointのファイルを開く

### 現在の日時を名前に含んだフォルダを新規作成するときの規則
- フォルダ名は```yyyyMMddHHmmss```として、./outputフォルダに作成すること

### スライド資料の各ページの内容をSVG形式ファイルとして作成するときの規則
- ファイル名は```{リーディングゼロ付きの3桁のページ番号}.svg```とすること

### SVG形式ファイルをPowerPointのスライド資料に変換するときの規則

以下のコマンドを実行すること
> powershell -NoProfile -ExecutionPolicy Unrestricted "{svg2pptx.ps1ファイルのフルパス}" -SVGFolderPath "{SVGファイルを格納したフォルダのフルパス}" -OutputPath "{新規作成するPowerPointのスライド資料のpptxファイルのフルパス}"

### 作成したPowerPointのファイルを開くときの規則

以下のコマンドを実行すること
> start ""  "{新規作成するPowerPointのスライド資料のpptxファイルのフルパス}"

## 設定
- Claude Codeの設定が`.claude/settings.local.json`に基本的な権限とともに存在しています
- 日本語でやり取りすること

Claude Codeを再度起動する

Claude Codeを再度起動します。

claude

これで準備は完了です。

実行

準備が終わったら、「◯◯のスライド資料を作成して」のような文章でClaude Codeにスライド作成をお願いします。

実行例

例として以下のようなお願いをしてみました。

アジャイル開発の特徴についての3ページのスライドを作成して。

すると以下のような実行計画が作成されました。CLAUDE.mdで指示した手順が反映されていました。

● Update Todos
  ⎿  [ ] 現在の日時を名前に含んだフォルダを新規作成する
     [ ] アジャイル開発の特徴に関するスライド3ページ分のSVGファイルを作成する
     [ ] SVGファイルをPowerPointファイルに変換する
     [ ] 作成したPowerPointファイルを開く

その後、実行の確認やPowerPointアプリの起動などが挟みまれつつ、処理が進行しました。

最終的に以下のような内容のpptxファイルが作成されました。内容はさておき、SVGファイルの作成からPowerPointのスライド資料への貼り付けまでを、Claude Code上で実行できました!

おわりに

今回は自作のPowerShellのスクリプトを直接実行させることで、スライド資料に貼り付けるSVGファイルの生成と貼り付けまでの一連の流れをClaude Code上で実行できました。

ただ、生成されるスライドの内容については大幅に改善の必要があります。今後は以下のようなことに挑戦してみたいと思います。

  • スライドのデザインをClaude Codeに具体的に指示する
  • ローカル上のファイルをインプットにしてClaude Codeにスライド資料を作らせる

余談

実は今回使用したPowerShelのスクリプトの処理をC#で移植してMCPサーバを自作する、という試みも実施していました。ですが、この自作の後になって、「PowerShellスクリプトをClaude Codeから直接実行させれば、このMCPサーバを使うまでもないのでは?」と思い直して試したところ、少なくとも自分の思ったとおりにはClaude Codeが動いてくれました。Claude Codeにローカル上の処理を実行させるだけであれば、必ずしもMCPサーバは必要ないのかもしれません。

Discussion