VB6 のように、VBA はすぐになくなりますか? VBA を使用して新しい Office アプリケーションを開発するべきではありませんか? それとも、すべての新しい Office アプリを VSTO で開発する必要がありますか?
更新: 最近この記事を読みました。
Office VSTO は、Office VBA よりも多くの追加機能を提供します。また、Microsoft が VBA を終了することを示唆しているとは思いません (実際、Microsoft は、少なくとも Office 14 までは VBA が存在すると明確に述べています。 2007 = Office 12)、アプリケーションを VSTO に移行して、追加された柔軟性と機能を活用することは十分に価値があると思います。
実際のところ、VBA を非推奨にすることは現実的ではないと思います。というのも、かなりの量の Office プログラミングがビジネス ユーザーによってマクロ レベルで行われており、それがすぐになくなるとは思えないからです。これらの人々は通常、VSTO 対応の IDE にアクセスできません。
VSTOには新しい機能がありますが、VBAと比較して多くの大きな欠点もあります。
一つには、Code Access Securityは、VSTOアプリケーションの展開を困難にする可能性があります(それは丁寧です)。
もう1つは、VSTO開発環境は、VBAほど「パワーユーザー」開発者がアクセスできる場所ではありません。たとえば、開始するためのマクロレコーダーはありません。
そして、大きな目玉は、アウトプロセスのCOMオブジェクトとの.NET相互運用機能がうまく機能しないことです。たとえば、Excel VSTOアプリケーション内から他のOfficeアプリケーション(Word、PowerPoint、Outlook)を操作する場合、このKB記事で説明されている理由により、これらのアプリケーションの複数のコピーがバックグラウンドで実行されていることがわかります。
これらすべてが既存のVBAアプリへの巨額の投資と相まって、VBAがすぐになくなることはないことを意味します。
Microsoftは、VBAは近い将来サポートされると述べていますが、新しいアプリでVSTOを使用することも推奨しています。
最新のMacバージョンのMSOfficeはVBAをサポートしておらず、64ビットWindowsは仮想32ビットアウトプロセスモードで実行します。したがって、Officeをプラットフォームとして使用する新しいアプリケーションを計画している場合は、VSTOが最適ですが、レガシーサポートについてあまり心配する必要はありません。
@coriが指摘しているように、MSがサポートをやめ、既存のソフトウェアを壊してしまうことは、大きなマーケティングではありません。
Microsoft は、.NET が最初にリリースされて以来、VSTO が統合されたマネージ コード バージョンの Office についてヒントを提供してきました (おそらく、VB6 IDE が VBA に統合されるのと同じ方法で、VS IDE は VSTO に統合されます)。
どれだけのコーディングが必要かを考えると、そしてこれがユーザーに表示される機能を生成しないことを考えると、これがマイクロソフトの優先リストの上位にあるとは思えません. 彼らが既存のコードベースの上にマネージ コード セットのオブジェクトを重ねて (Joel Spolsky が最初に VBA を Excel に入れるときに、既存の C コードベースの上に一連の COM オブジェクトを重ねたのと同じように)、新しい IDE をぶつけたと想像できます。古いものを非表示にしながら、デフォルトとして。それさえも大変な作業になります (マクロ レコーダーを書くことを想像してみてください!)。もちろん、これにより .NET は Office の前提条件となり、Office チームは銃口を突きつけられた場合にのみこれを受け入れます。
もちろん、実際に製品から VBA を削除することはありません。Excel は引き続き Excel 4 マクロをサポートし、Word は Word 6 マクロをサポートする WordBasic オートメーション オブジェクトをまだ持っています。レガシ コードをサポートする必要があり、この 10 年間でこれらのコーディング モデルのいずれかを使用した人は誰もいません。
Microsoft が .NET 環境を Office に組み込むことがあれば (率直に言って、そうなることはないと思います)、新しい Office 機能に対する VBA サポートの追加をやめるかもしれません。それは、VBA の廃止に最も近いものです。
これは、将来のVBAサポートに関するMicrosoftからのコメントです。一言で言えば、WindowsバージョンのOfficeでは廃止されません(ただし、Macバージョンでは廃止されます)。
VBAアドインの展開は少し面倒ですが、VSTOはさらに面倒です。また、VSTOは、コードを実行する前にCLRを起動する必要があるため、多少のオーバーヘッドが伴います。
しかし、何よりも重要です。VSTOはVBAを書く手間を省きます。
VBA が減価償却されるまでには長い道のりがあります。実際、VBA は MAC 上の次のバージョンの Office に再導入される予定です ( http://www.microsoft.com/presspass/press/2008/may08/05-13MacBU2008PR.mspx ) 。 .
現場のほとんどの人にとって、VBA と C XLL (および VB6 !!) は引き続き最適なツールです。現在の .NET リンケージは遅く、生産性の向上はまったくありません。ExcelDNA などのサード パーツ ツールは多少は痛みを和らげますが、Office の管理されていない C ベース (およびアセンブラー ベース) のコード ベースは、.NET と簡単に共存できないことは明らかです。