マイクロソフト(株) : 磯貝 直之氏
Windows 2000チーム徹底インタビュー (その4) Office 2000は、企業アプリケーションのプラットフォームである~Office 2000 Developer~
2000年11月30日 00時00分更新
「COMアドイン」は、完全にアプリケーションの側に組み込まれるため、同一のOffice環境であれば、どのアプリケーションからも同じ「COMアドイン」を利用できます。逆に「COMアドイン」はDLLとして実装されるために、DLLの配置は任意ですが、Officeアプリケーションからでないと利用できません。これらをまとめて言えば、「VBAを搭載しているすべてのOffice 2000アプリケーションから、統一的に呼び出すことの可能なアドインプログラムがCOMアドインである」と表現できます。つまり、いままでExcelをプラットフォームとしてVBAで実現していたソリューションを、「COMアドイン」として作成することによって、Excelだけではなく、WordやAccessなどを含めたほかのアプリケーションからも呼び出すことが可能となるわけです。今まで1つのアプリケーションでしかプラットフォームにできなかったものが、すべてのOfficeアプリケーションという、より広いプラットフォームをターゲットとした開発が可能となるわけです。
また、開発ツールは、どのようなものが用意されているのでしょうか。
また、名称に「COM」と付いていると、難しそうに感じますが、実際に「COMアドイン」を作成する方法は、マクロを書く方法と変わりません。「Office 2000 Developer」と言っても、環境はVBAが基本となるわけですから。
開発環境は、通常のVBエディタとほとんど変わりません。実は、「Office 2000 Developer」をインストールすると、[ファイル]メニューに[プロジェクトの追加][プロジェクトの作成]などといったコマンドが追加されるのです。ここで[プロジェクトの作成]から[アドインプロジェクト]を選択すると、「アドイン・デザイナ」を起動することができるというわけです。
「アドイン・デザイナ」では、「アドインの表示名」や、実際にアドインをどのアプリケーションで利用するか、アプリケーションのバージョンや、アプリケーションの中で起動するタイミングを選択できます。また、Excelが起動した瞬間に、そのCOMアドインも起動したい場合は「スタートアップ」に指定する方法や、メニューの中などに追加して、必要な時だけ使用したい場合は「ロードオンデマンド」を指定する方法も選択可能です。デザイナ上での作業はもちろん、フォームの挿入や標準モジュールの挿入といった作業は、ほとんどマクロを書くのと同様の操作で可能です。ですから、VBエディタの中でプログラミングができれば、特に障壁はありません。
プログラミングされコンパイルされた「COMアドイン」は、DLLにまとめられます、使用する場合は、特定のアプリケーションの[メニューのカスタマイズ]から[COMアドインメニューの追加]で指定します。そこで、DLLを指定すると、その瞬間にレジストリへの登録が行なわれ、アプリケーションからCOMアドインを呼び出すことができるようになります。つまり[ツール]メニューに追加されるわけです。
たとえば、Word用にマクロを書いた場合、これまでは同じマクロを別のアプリケーション用に別途書かなければならなかった。「COMアドイン」には、Word以外のほかのアプリケーションで使用するためのコードも記述することができるため、ほかのアプリケーションから同じ操作を行なうことによって、まったく同じ機能を呼び出すことができるわけです。何かVBAを使ってソリューションを作った場合、1つのアプリケーションの中だけに留めておくのは非常にもったいない。特に汎用性の高いソリューションであれば、なおのことです。こういった場合にはCOMアドイン化して、Officeをターゲットとしたアプリケーション、つまりより汎用性の高いアプリケーションを作成していただきたいのです。
また、企業内でのマクロを配布して利用する場合、ユーザーが勝手にコードを書き換えてしまうといったセキュリティ上の問題も発生する可能性があります。こういった問題に対処するには、COMアドイン化してしまえば、完全にDLL化されるためコードのセキュリティは保てるわけです。特に企業内における各部門での管理といった面も考え合わせると、COMアドインでの配布は有効な手段であると思います。社内ネットワークでの配布に際しても、トラフィックの面から考えて、マクロをOfficeドキュメント本体とともに配布するよりも、サイズの小さなCOMアドインでの配布は有効な手段となるでしょう。作るほうも使うほうも、管理しやすく使いやすいというわけです。