Visual Studio での VBA ソリューションと Office ソリューションの比較

Microsoft Visual Basic for Applications (VBA) は、Office アプリケーションと密接に連携されているアンマネージ コードを使用しています。 Visual Studio を使用して作成した Microsoft Office プロジェクトでは、.NET Framework および Visual Studio デザイン ツールを利用できます。

Visual Studio を使用して作成できる Office ソリューションの種類について詳しくは、「Office ソリューションの開発の概要 (VSTO)」を参照してください。

比較

Visual Studio での VBA ソリューションと Office ソリューションの基本的な比較を次の表に示します。

VBA ソリューション Visual Studio の Office ソリューション
特定のドキュメントに接続され、永続化するコードを使用します。 ドキュメントとは別に保存されているコード (ドキュメント レベルのカスタマイズの場合)、またはアプリケーションから読み込まれたアセンブリ内のコード (VSTO アドインの場合) を使用します。
Office オブジェクト モデルと VBA API に使用できます。 Office オブジェクト モデルと .NET Framework API の両方にアクセスできます。
マクロの記録、開発者の作業の簡略化のために設計されています。 セキュリティ、コード保守の簡略化、すべての Visual Studio 統合開発環境 (IDE) の利用のために設計されています。
Office アプリケーションとの密接な統合を利用するソリューションに適しています。 Visual Studio と .NET Framework のすべてのリソースを利用するソリューションに適しています。
企業の場合は、特にセキュリティと開発の面で制限事項があります。 企業で使用するために設計されています。

一部の作業は、VBA を使用する方が簡単にすばやく実行できます。 特に、次の場合は、引き続き VBA を使用することができます。

  • カスタムのワークシート関数。

  • マクロの記録。

Visual Studio を使用して作成された VBA ソリューションと Office ソリューションの組み合わせ

Visual Studio を使用して作成された Office ソリューションから VBA コードを呼び出すことができます。また、VBA から Visual Studio を使用して作成された Office ソリューションのコードを呼び出すこともできます。 具体的な手法は、Office ソリューションが VSTO アドインか、ドキュメントレベルのカスタマイズかどうかによって異なります。 詳細については、「他の Office ソリューションから VSTO アドインのコードを呼び出す」および「VBA とドキュメント レベルのカスタマイズを結合する」を参照してください。