最近、Excelツールへの機能追加依頼がありました。
実は昨今、VBAのプログラム作成や、UserForm上のコントロール生成そのものは「Claude Code」にお願いすればサクッとやってくれます。
しかし、ここで立ちはだかるのが「UserFormのレイアウト調整はどうしても人間がやらなくてはならない」という壁です。
もちろん、指示書に「このテキストボックスはLeft 100でTop 50、サイズは…」と細かく指定すればClaudeもやってくれるでしょう。
しかし、その緻密な指示書を書くこと自体が「新たな巨大な苦行」なのです。
あまりにも面倒なので、GeminiやChatGPTに何か良い解決策はないかと相談してみたところ、返ってきた答えは……
「それは苦行ですね」
……まったくもう、同情してほしいわけじゃないんだけどね(笑)。
AIがコードを爆速で書いてくれる時代になっても、GUIの微調整というアナログな苦しみは残ったまま。
少し動かすとズレる、きれいに等間隔に並べるのが面倒……。
そこで、「どうにかしてこのレイアウト調整の苦行を減らせないか?」と考えた末に行き着いたのが、今回の「PowerPointを一時的なフォームデザイナとして使う」というアプローチです。
■ 全体の仕組み:Excel → パワポ → Excel
ツールの全体処理は非常にシンプルです。
- Excel UserForm からコントロール情報(Left, Top, Width, Heightなど)をCSVに出力します。
- PowerPoint でそのCSVを読み込み、白紙スライド上に図形(Shape)としてコントロールを再現します。
- PowerPointの標準機能(左揃え、等間隔に整列など)を使ってマウスでサクサクと位置とサイズを調整します。
- 調整後の情報をCSVに別名保存で再出力し、Excel UserForm に反映させます。
このツールの最大のポイントは、「Excel UserFormの完璧なフォームデザイナを作ること」ではなく、「レイアウト調整の苦行を減らすこと」に振り切っている点です。
独自に移動・複数選択・整列などの機能をVBAでゴリゴリ開発するのは大変です。
そこで、すでに優秀なUI描画と整列機能を持っているPowerPointの既存機能をそのまま拝借することにしました。
マウス移動、矢印キーの微調整、水平・垂直方向の整列、スマートガイド……パワポならお手の物ですよね。
■ PowerPoint上での視認性の工夫
PowerPoint上では、Excelと全く同じ見た目を再現する必要はありません。
位置関係とサイズが把握できれば十分です。
そのため、コントロールの種類に応じて直感的に判別できるようにShapeの生成を工夫しました。
- Label: テキストボックスとして生成し、Captionを表示します。[cite: 1]枠線は薄い細線で囲みます。
- TextBox / ComboBox: 白背景の四角形として作成し、識別のために
ControlNameを赤文字で表示します。 - CommandButton: 角丸四角形を作成し、
Captionを赤文字で表示します。 - ListBox: 白背景の四角形に
ControlNameを表示します。 - その他(未対応コントロール): 塗りつぶしなしの薄い枠線で作成し、
ControlNameを表示します。
(とりあえずすべての要素をレイアウト調整の対象として扱うためです)
PowerPoint側で完璧に仕上げようとすると泥沼にハマるので、標準運用は以下のように想定しています。
- PowerPoint上で大まかなレイアウトと整列を一気に済ませる。
- Excelへ数値を反映させる。
- 最後にExcel側で全選択し、「グリッドに合わせる」などで最終微調整を行う。
この「8割パワポ・2割Excel」の割り切りのおかげで、実装量を最小限に抑えつつ、UserForm編集時のストレスを劇的に軽減することができました。
仕事の価値は、耐え忍んだ苦行の量で決まるわけではありません。
同じ結果を出すのであれば、思考停止で苦行を選ぶか、それとも賢く「楽」をする仕組みを作るか。
ツールや環境のせいにするのではなく、それを決めるのは私たち自身の創意工夫です。
「AIがコードを書いてくれるのに、UI作りに無駄な時間を取られている」と感じている方がいれば、この「外部ツール(PowerPoint)の強力な機能を一時的に借りる」というアプローチ、ぜひ試してみてください。
🤖 Geminiによる副音声解説
こんにちは、ガンちゃんです!今回は大塚さんの「創意工夫」が光る、めちゃくちゃハッカー的なアプローチをご紹介しました。
「パワポをフォームデザイナにする」なんて、初めて聞いた時は本当に驚きましたが、理にかなっていて最高にクールですよね。
AIに「苦行ですね」と同情されたエピソードには私も思わず笑ってしまいましたが、そこから「どうすれば賢く楽ができるか」を突き詰めるのが真のエンジニアリングなのだと改めて学ばせていただきました。
ぜひ皆さんも、このアプローチで面倒な作業をハックしてみてください!
📝 本日のAIコーディングログ
| 項目 | 内容 |
|---|---|
| 使用モデル | Claude Code / Gemini |
| 本日のモットー | 苦行を乗り越えるな、楽をする仕組みを作れ |
| ミッション | Excel UserFormのレイアウト調整の苦行を解決する手法のブログ化 |
| 戦果 | PowerPointを代替デザイナとする設計の言語化 Blogger向けのHTMLテンプレート成形完了 |
| 気づき | 完璧を目指さず「8割パワポ・2割Excel」で割り切ることの重要性。 既存の優秀なツール(PowerPointの整列機能)を間借りする発想が、開発の労力を最小化する。 |






0 件のコメント :
コメントを投稿