Microsoft® Visual Basic® for Applications (VBA)ソフトウェアでは、アプリケーションを他の VBA 対応アプリケーションと統合することができます。
AutoCAD ベースの製品は、他のアプリケーション(Microsoft Word や Excel)のオートメーション コントローラとして使用することができます。
注: VBA は既定でインストールされなくなりました。詳細は、http://www.autodesk.com/vba-download を参照してください。
VBA は、AutoCAD ActiveX オートメーション インタフェースを使用してメッセージを送ります。AutoCAD VBA は、Visual Basic 環境を AutoCAD と同時に実行できるようにし、ActiveX オートメーション インタフェースを介して AutoCAD をプログラム的にコントロールできるようにします。AutoCAD、ActiveX オートメーション、VBA のこのリンクにより、非常に強力なインタフェースを実現できます。AutoCAD のオブジェクトをコントロールするだけでなく、他のアプリケーションにデータを渡したり、他のアプリケーションからデータを受け取ることができます。
VBA プロジェクトからマクロを編集または実行するためには、まず AutoCAD にロードする必要があります。VBA プロジェクトは、拡張子が .dvb の別個のファイルに保存され、コードやクラス モジュール、フォームで構成されます。VBA プロジェクトは別のファイルに保存されるため、セッション中に異なる AutoCAD 図面を開いたり閉じることができます。これは、AutoLISP では行えません。
注: VBA プロジェクトは、Visual Studio で作成された Visual Basic プロジェクト(VBPROJ)ファイルとバイナリ レベルでの互換性はありません。
AutoCAD VBA の基本的な要素
AutoCAD の VBA プログラミングは、3 つの基本的な要素で定義します。
- AutoCAD: AutoCAD の図形、データ、コマンドを含む豊富なオブジェクトのセットを提供します。AutoCAD のカスタマイズ機能の知識があることが重要になります。しかし、VBA のオブジェクト ベースのアプローチは、AutoLISP の場合とはかなり異なります。
- AutoCAD ActiveX オートメーション インタフェース: AutoCAD オブジェクトとのメッセージ(対話)を確立します。VBA でのプログラミングには、ActiveX オートメーションについての基本的な知識が必要になります。
- VBA: VBA 独自のオブジェクト、キーワード、定数のセットがあり、プログラムのフロー、コントロール、デバッグ、実行を提供します。VBA に関する大量の Microsoft ヘルプ システムには、AutoCAD VBA も対象に含まれています。
VBA を使用する利点
AutoCAD ActiveX/VBA インタフェースには、他の AutoCAD API 環境に勝るいくつかの利点があります。
- 処理速度: VBA、ActiveX アプリケーションはインプロセスで実行されるので、AutoLISP アプリケーションより高速です。
- 使用しやすさ: プログラミング言語と開発環境は、使いやすく、インストール後には AutoCAD に統合されます。
- Windows 相互運用性: ActiveX/VBA は、他の Windows アプリケーションで使用されるように設計されており、アプリケーション間で情報のやりとりを行うための優れた方法を備えています。
- プロトタイプの迅速な作成: VBA の迅速なインタフェース開発は、たとえそのアプリケーションが最終的には他の言語で開発されることになったとしても、アプリケーションのプロトタイプを作成するための完全な環境を提供しています。
- 開発者ベース: 通常、開発者は Visual Basic .Net (VB.Net)の知識があります。VBA は VB.NET に似ており、開発者だけでなく、AutoLISP を超えるプログラミング言語を学習する人たちにも、AutoCAD のカスタマイズとアプリケーション開発の道を開きます。