Claudeにもいろいろある
- Claude Web版
- Claude Code (CLI)
- Claude デスクトップアプリ
- チャット
- Cowork
- Code
Web版は自動化という観点ではファイルがいじれないので一旦無視。
Claude CodeのCLIはエンジニアがイメージするClaudeのこと。事務処理をする非エンジニアにはハードルが高いのでこれも置いておく。
ここではClaude デスクトップアプリの3つのタブの使い分けを論じる。
- チャット
- Webのチャットとあまり変わらない。ローカルファイルをいじれない。使い所あまりない
- Cowork
- 手元のアプリケーションと連動できる
- ただし接続できるアプリケーションは限られている
- 実行環境は仮想的に作られたUbuntu22で動いてる
- curlコマンドが打てないので外部との直接通信もできない
- 一見いろいろできるけど制約がわかりにくいのでこれもボツ
- Code
- Windows側でプログラミングまでやる
- Git for Windowsのインストールが必要
- Gitが必要というより、Windows側で動くBashが必要
- WSL上のBashじゃダメで、WindowsOS側で動くbashであることに意味がある
- Windows側のbash経由でWindows側のPythonを動かす
- Windows側で動かすのはファイルにアクセスしたいからではなく、WindowsならではのAPI(COM/ActiveX/印刷機能)にアクセスするケースがあるから
結論:Claude デスクトップ版のCodeを使おう
全部入りという観点では、Claude デスクトップ版のCodeがPCの事務処理に向いている。ただし結構コツがいる。
以下、エクセルファイルの操作をCodeにお願いするときのコツ。
- ほっとくとPythonのエクセルライブラリを使おうとするので、「インストールされているエクセル経由でエクセルファイルを操作してください」と依頼をする
- Pythonのエクセルライブラリはエクセルとの互換性が厳しい
- aaa の曜日書式なんて知るわけがない
- ゼロからエクセルファイルを作らせない
- 印刷設定周りの常識がほとんどないので、セルの書式と印刷設定だけはあらかじめ手動でエクセルで設定しておく。あとはそのエクセルをテンプレートとしてClaudeには指示を出す
- セルの書式を自力でやらせると、DejaVu やArialみたいな欧文フォントで日本語を記述しようとする(表示のタイミングで別のフォントに置換されるのでフォント化けが起こる)
- セルの値の置換だけなら、Claudeが作るPythonプログラムでもできる
- PDF保存などもPythonのエクセルライブラリではできないので、「インストールされているエクセル経由でPDF化してください」などの指示を出す
- 指示を出したあとは「テストしてください」と言わないと、確認してくれないのがClaudeの悪いクセなのでテストまでさせる
- ただしClaudeはエクセルで開いて確認をするという作業がめちゃ苦手
- エクセルで開くまではできるけどスクショを取る前に、ClaudeCodeの確認がある
- Claudeの確認で「はい」をクリックするときにはエクセルではなくClaudeが全面に来るので、エクセルのスクショがとれない
- だからエクセルファイルをエクセルアプリケーション経由でPDFに変換して、そのPDFを対象にテストをしてくださいというお願いをしないといけない
本当はメールを送るところまでやりたい
- 「エクセルファイルを編集→PDF化→メールに添付して送信」までいかないと事務処理の完全自動とはいえない
- メール送信はリスクの高い処理なので、それなりにちゃんとGmailのAPIとかを使う必要がある
- Gmail APIを使ったPythonプログラムを作ってもらうということをClaudeCodeにやらせる
- ここまで来るとClaudeで事務処理を自動化といよりも、事務処理を自動化するPythonプログラムをコーディングさせてるだけではある
アーキテクチャとしてはCOM
- インストールされているExcelを自動操縦するにはCOMを使うのがベスト
- COMの実態は、VBA、AcitiveX、OLEなどのテクノロジー(だいたい同じことを指してる)
- PythonからWin32OLEライブラリ経由でエクセルを開くパターンもあれば、PowerShell経由でCOMを起動するケースもある
- どちらからでもエクセルをCOM経由で使うので機能面では変わりはないが、どっちの方がClaudeが書き慣れているかは不明(エクセル以外のロジックまで考えるとPython+OLEの方がいいのかも)
以上のコツを、CLAUDE.mdに入れていくといいのだろうけど、もうちょっとベストプラクティスとベタープラクティスのグラデーションをテストしてみたらあらためて。
MCPはどうなの?
エクセルのMCPサーバーもある。実態はCOMを叩いてそれをMCPのインターフェースとしてサーバー化してくれるもの。Codeを使う分には直接COMインターフェースを叩けばいい。MCPサーバーのメリットがでるのは、CodeでははくCowrokやChatでエクセルにアクセスしたいとき。活躍の場が狭い。