【実務・中級編】【上級者向け】Visio VBAで作成したツールをアドイン化し、リボンメニューからPDF出力や保存を制御する配布用パッケージング – Visio VBA解析バイブル

スポンサーリンク

【Visio VBA極限活用】VSDMの限界を超えろ!VSSMアドインとリボンカスタマイズで実現する「配布用PDF出力パッケージ」の極意

こんにちは。チーフアーキテクトの私だ。
これまで、個人のマクロ有効図面(.vsdm)にVBAを書き込み、社内ニートのように「図面を開くたびにマクロを有効化してください」とポップアップと格闘してきた開発者に告ぐ。

その設計、今日で終わりだ。

実務において、VBA製ツールを他部門へ展開する際、`.vsdm`のままでのファイル共有は悪夢でしかない。リンク切れ、マクロのセキュリティブロック、勝手にコードを書き換えられるリスク、そしてバージョンアップ時の全ファイル差し替え地獄。

プロのエンジニアが選ぶべき道は一つ。
「Visioステンシルアドイン(.vssm)」によるコードの集中管理と、リボンUI(CustomUI)からのシームレスなPDF出力制御だ。

今回は、全ユーザーのVisioに強制常駐させ、リボンメニューから一撃で厳密なレイアウト制御付きPDFを出力する「配布用パッケージング」の全技術を叩き込む。

—

1. なぜ `.vsdm` 配布は現場を崩壊させるのか?

現場の担当者にVBA入り図面を配ると、決まって以下の問題が発生する。

1. セキュリティの壁:Microsoftの厳格化により、ネットワーク上の`.vsdm`のマクロはデフォルトでブロックされる。
2. コードの分散と陳腐化:テンプレートがコピーされるたびにマクロが分岐し、修正が入るたびに全ファイルを回収・上書きする羽目になる。
3. UIの欠如:ショートカット(`Alt + F8`)を開かせたり、クイックアクセスツールバーに頼るなど、エンドユーザービリティが最低最悪になる。

解決策:VSSMマスターステンシルによる「一元管理」

Visioのステンシルファイル(`.vssm`)にVBAコードを内包させ、それを「起動時アドインフォルダ(Startup)」に配置する。これにより、ユーザーがどの図面を開いていようとも、バックグラウンドでマクロが常駐し、リボンに独自のメニューを出現させることが可能になる。

—

2. アーキテクチャ全体像

今回の実装パッケージは以下の構成で構築する。

  • `EnterprisePDFTool.vssm`(本体ステンシル兼アドイン)
  • `ThisDocument`モジュール:リボンのコールバックとイベント監視
  • 標準モジュール(`modExport`):PDF出力の厳密な座標計算とエクスポートロジック
  • `CustomUI.xml`(リボン定義)
  • 標準のVisioリボンに「業務ツール」タブを追加し、「社内標準PDF出力」ボタンを配置。

—

3. 実装ステップ:プロダクションコード

ここから先は、妥協のない実務レベルのコードだ。そのままプロジェクトに組み込んでほしい。

① リボン定義(CustomUI.xml)

まず、VSSMファイル内にカスタムUIを埋め込むためのXMLを定義する。VisioのリボンカスタマイズはExcelやWordと同様にOffice Fluent UIを採用している。








タイトルとURLをコピーしました