SharePoint アドイン製品一覧
SharePoint 2010 開発のステップ・バイ・ステップ
Windows Azure 入門
Windows Azure How-To 集
WCF / WF 入門
【環境】Microsoft Office 2007 EnterpriseVisual Studio Codename Orcas (Beta 1)
Orcas でみる VSTO の新機能 リボンのデザインサポート Word コンテントコントロールのデータバインド ClickOnce Outlook フォーム リージョン (ここから Beta 1 を使っています、、、) VBA との相互運用 SharePoint ワークフローの作成と配置の自動化
Orcas でみる VSTO の新機能
こんにちは。
今日は、昨日から再開した Orcas の VSTO 新機能の続きとして、VBA との相互運用の新機能についてご紹介します。現状 (Visual Studio 2005) の Application.Run (または Application.RunOld) など VSTO のマネージコードから VBA で作成したマクロを実行できますが、この逆をおこなえるという仕組みです。
既にご紹介しました通り Orcas の ClickOnce サポートなどにより配置の問題などもクリアされ、VSTO は情報システム部門の方など専属の部門で展開される企業システムの1つの選択肢 (BI 的なプラットフォーム) として利用する上での課題はかなりクリアされてきていますが、それでも、Visual Studio を買わなければ使えない!と考えるエンドユーザ寄りのパワーユーザ的な方々(例えば、エンドユーザ部門に居ながら、自らコードを作成して機能拡張がおこなえる高度なスキルを持ったエンドユーザの方々)にとっては、VSTO はまだ敷居の高い存在となっており、VBA はまだまだ必要とされることでしょう。 札幌の CLT ラウンチイベント (こちら) で今村丈史さんからも、こうした背景を含めた、的を得たご説明がありましたが、VSTA が Excel、Word などの主要アプリで使えない現状では、この相互運用機能は重要な位置付けとなります。こうした VBA を使われるエンドユーザ側の利用者の方(会社専属の開発者でないパワーユーザの方)に .NET が提供する高度な仕組み (Web サービスとの連携、等々) をエクスポーズする方法として、この機能は有効に利用できることでしょう。
では、さっそく方法を簡単にご紹介してイメージをつかんでもらいましょう。
実は、後述している EnableComCallers プロパティですが、これは VB プロジェクトのみで設定可能です。Visual C# のコードを呼び出す方法は、以下を参照してください。(この理由について以下に掲載されていますが、簡単に言うと、言語間でのアーキテクチャの相違に寄ります。)
http://msdn2.microsoft.com/en-us/library/bb157883(VS.90).aspx
この仕組みが使えるのは、現在の計画では、Word と Excel のみで、Word の場合は、.docm、.dotm、.doc、.dot でまた Excel の場合は、.xlsm、.xltm、.xls、.xlt でこの方法を利用することができます。(当然のことながら、docx、xlsx はマクロが有効なドキュメントではないので不可能です。)
※ ここでは、Visual Studio Codename Orcas の Beta 1 を使用しています。使用されているクラスや機能は予告なく変更されることがありますのでご容赦ください。
追記 : 上記はドキュメント レベルの VSTO プロジェクトですが、VBA から AddIn の関数を呼び出すには、VBA 上で Application.COMAddIn オブジェクトを使用します。下記にコードが記載されていますので、参考にしてください。[MSDN] アプリケーション レベルのアドインのコードを VBA から呼び出すhttp://msdn.microsoft.com/ja-jp/library/bb608614.aspx
関連ナンバー
PingBack from http://blogs.msdn.com/tsmatsuz/archive/2007/04/03/vs-orcas-march-2007-ctp-vsto.aspx