このページの本文へ

マイクロソフト(株) : 磯貝 直之氏/篠木 隆一郎氏

Windows 2000チーム徹底インタビュー (その5) アプリケーションとマクロの発展が、次の段階に到達した~Visual Basic for Applications~

2000年12月04日 03時56分更新

文● 聞き手、構成:MSDN Magazine編集部

  • この記事をはてなブックマークに追加
  • 本文印刷
[編集部] それでは、VBA 6.0の強化機能について、ご説明いただけますか。
[磯貝] 「Office 2000 Developer」での説明と重複するかもしれませんが、若干細かいお話をしましょう。

 今まで、たとえばVBA 5.0の時に、Visual BasicとVBAとの間で、最も違っていた部分を考えてみた場合、あくまでもVBAというのは、Office側を操作することを目的としていたわけです。Office側、つまりOfficeアプリケーションの操作を目的としてたので、たとえば、Windows側が持っているAPIを直接操作するといったことは、非常に難しかったわけです。しかし、VBA 6.0では、今までVisual Basicで使えていた「Address Of演算子」という機能が利用可能となりました。この機能により、Windowsの持っているAPIを、VBAの側から直接使うことが容易となりました。

 今まで、OSが実際に持っている機能というのは、まずOfficeがそれを使っていて、そのOfficeが持っている機能を、ユーザーがVBAから使うというステップだったわけです。そこが、VBA 6.0では、当然今までと同じようにOfficeの機能を使うこともできますが、Officeだけではなくて、Win32 APIを直接操作できるようになった。この機能を少し推し進めて考えてみると、アプリケーションとマクロの発展が、次の段階に到達したことが分かると思います。1つのアプリケーションだけで完結させずに、たとえば、複数のアプリケーションを連係させて利用する場合を考えると、OS側で持っているウィンドウの情報などといったものを取得するといった操作も必要になってくるわけです。ですから、そういった意味では、Officeのアプリケーションとしての壁が取り払われたのと同時に、VBAから見た場合、OfficeとOSの間にあった壁が取り払われたというのは、自然な流れなのかなと考えています。そのOfficeの機能を再利用してアプリケーションを開発する中で、あくまでも付加機能の1つとして、Windows APIを操作すると考えていただきたいです。

[編集部] VBAから見たときにOfficeでもWindowsでも、機能の横並びといったふうに見えるわけですか。
[篠木] そういう見方も可能です。しかし、VBAから見て、どちらの機能のほうが使いやすいかを考えると、やはり圧倒的にOfficeの機能のほうが使いやすいわけです。同じインターフェイスが出ているにしても、オブジェクトモデルにしても、非常にVBAから使いやすい形に設計されていますから。
[編集部] 開発環境としてのVBA Editorは、Visual Studioに搭載されているものと同じものなのですか。つまり、すべてを統一した環境にしようとしているということなのでしょうか。
[磯貝] たとえば、Visual Basicを開いたときに、そのままその環境からVBAに入って、Officeのオブジェクトをそのまま利用できるかと言うと、実はそうではありません。内部的なモジュール自体は同じものを再利用しているのですが。

 しかし、VBAの場合は、単独で動くアプリケーションを開発するという位置付けのものではなく、あくまでも何かホストアプリケーションがあって、そのホストアプリケーションを呼び出して、外部のアプリケーションが持っている機能をつなぎ合わせるためのコンシューマでしかありません。ですから、何か機能を新しく作って、それをプロバイドすることに関しては、それほど主体的には想定していないというわけです。

[編集部] 実際にVBAプログラマは、どのくらいいるのでしょうか。
[篠木] ワールドワイドで約600万人と言われています。米国などでは、Excelのマクロプログラミングだけで、商売が成り立ってしまうくらいですから。

 マクロプログラマと、一般的に言われるプログラマつまりEXEを作るプログラマとの違いは、ベースになるアプリケーションの機能を、どこまで詳しく知っているかという部分にあると思います。Officeの機能をVBAで使いこなそうとした場合、実はExcelやWordの機能を知り尽くしていないと使えないということになるわけです。どれだけオブジェクトモデルを理解してるかということよりも、Excelで何ができるかをとことん知り尽くしているんですね。実はそのほうが重要でして、VBA自体、言語は簡単なのでほかの開発言語と比較してもそれほど習得は難しくないわけです。となるとやはり、Officeアプリケーションの知識が重要になってくるわけですね。

 Visual Basicプログラマがアプリケーションを開発する場合や、COMコンポーネントを開発するプログラマにとって重要なのは、システム全体をどのようにして構築するかということをビジョンとして持っていて、その環境の中でどういったパーツをコンポーネントとして作っていけばよいかということです。彼等は、常にそのことを念頭に置いてシステムを眺めている。もう全然アプローチの方法からして違うわけです。

[編集部] 現在、日本でCOMアドインを市販のパッケージとして、ソリューションを提供している企業はあるのでしょうか。そして、今後の傾向をお聞かせいただいたいのですが。
[磯貝] 弊社のWebサイト内に、「Visual Tools Partner」と言って、Visual Studioの生産性を向上するための製品群が紹介されているページがあります。その中に、新しく「Office/VBA」というカテゴリが追加されまして、ここから製品を参照することができるようになりました。

 COMアドインパッケージの例としては、(株)ナルボの「Word Reports 2000」という製品が紹介されています。もう製品名からも分かるように、Wordに対するCOMアドインなのですが、Wordをベースとして帳票を作成することができるわけです。この製品は、Wordの持つ機能を再利用して、帳票を非常にスムーズに作成していきます。Wordの持つ非常に高い機能、たとえば印刷機能などをうまく再利用している。こういった機能を、VBAおよびCOMアドインを使って開発したパッケージです。もともと株式会社ナルボという会社は、OCXコントロールをメインにされている会社でして、OfficeのCOMアドインだけではない。おそらく以前からコンポーネントの再利用ということを考え続けて来ているので、こういった製品を出されても不思議ではないんです。しかし今後の流れとしては、もしかしたらこういったパッケージよりも、どちらかというと、企業内のソリューションの方が用途として多いのでないかと考えています。

 「Office 2000 Developer」という製品は、やはり「Office」と付いているとアプリケーションのスイートパッケージというイメージが非常に強い。しかし、特に企業内での業務として利用されている場合は、Officeの上での定型作業や共同作業に、どんどん利用していっていただきたい。ここの部分を、特に我々はフォーカスしていきたいです。我々は、「Office 2000 Developer」という製品は、一昔前のVisual Basicの役割を越えたのではないかと考えています。ちょっとした企業内アプリケーションを開発したりするには、「Office 2000 Developer」をお勧めしたいですね。

カテゴリートップへ

アスキー・ビジネスセレクション

ASCII.jp ビジネスヘッドライン

ピックアップ