VBAマクロ開発の基礎知識|AutoCAD VBAマクロの作成方法

本ページはAutoCADでVBAマクロを作成するために必要な基礎知識をまとめたページです。
初めてVBAを開発しようという方は上から順に読んでいけば基本となる必要最低限の内容は全て押さえられるようになっています。また、すでにExcelなどでVBAの知見がある方もAutoCAD特有の設定等あるのでAutoCAD VBAが初めてという場合は一通り内容を確認しておくことをオススメします。

 注意点 

AutoCADでVBAマクロを開発するには専用のモジュールをインストールしておく必要があります。
まだVBAモジュールをインストールしていない場合はメインページからご覧ください。

VBAマクロファイル(.dvb)の作成

AutoCADのVBAマクロは専用のVBAプロジェクトファイル(拡張子.dvb)で管理します。
Excel VBAの場合、プログラムしたデータはExcelブックのファイル自体に埋め込まれますが、AutoCADの場合はドキュメントデータ(.dwg)とは別のファイルとして保存されるため、マクロを実行する際はAutoCADにdvbファイルを読み込ませる必要があります。基本的にはAutoCADを起動するたびに使用したいマクロのプロジェクトファイルを読み込ませる必要がありますが、汎用的なマクロで毎回読み込ませるのが面倒な場合はAutoCAD起動時に自動で読み込ませる設定にすることも可能です。

dvbファイルは専用のエディタであるVBE(Visual Basic Editor)を使って開発します。
VBEを起動するにはAutoCADのメニューバー>[管理]>[アプリケーション]内にある[Visual Basic Editor]ボタンをクリックします。(ショートカットキー[Alt]+[F11]でも可)

VBEを起動すると下画像のようなウィンドウが表示されます。
基本的にはこのウィンドウ内でマクロの開発のすべて(作成、デバック、実行など)を行います。

VBAを初めて使う場合、上画像のようなウィンドウではない場合もあります。
VBEにはプロジェクトエクスプローラー、プロパティウィンドウ、イミディエイトウィンドウ、ローカルウィンドウ、ウォッチウィンドウ、コードウィンドウの6種類のウィンドウが存在しており、どれも開発には必須になってくるウィンドウですそれぞれ下記のような役割を持つウィンドウです。

プロジェクトエクスプローラー:
 VBAプロジェクト内のモジュールやオブジェクトを一覧表示し、編集や整理を行うウィンドウ
プロパティウィンドウ:
 選択したオブジェクトやコントロールのプロパティを表示し、編集できるウィンドウ
イミディエイトウィンドウ:
 コードを即座に実行したり変数の値を確認するための対話型のコマンドラインウィンドウ
ローカルウィンドウ:
 プロシージャ内で使用されている変数を表示し状態を把握するためのデバッグ用ウィンドウ
ウォッチウィンドウ:
 特定の変数や式を選択して監視しその値の変化を確認するためのデバッグ用ウィンドウ
コードウィンドウ:
 VBAのコードを記載するウィンドウ
 

各ウィンドウを表示させるにはメニューバー>[表示]のメニュー内から該当のウィンドウを選択すれば表示させることができます。非表示にしたい場合はVBE上の各ウィンドウの右上にある[×]ボタンの押下することで非表示化することができます。各ウィンドウはドラッグして好きな位置に配置することもできるので自身の操作しやすいVBEの環境を作ることができます。

 icon-info-circle 新規作成dvbファイルの作成

VBEを起動したときにdvbファイルが1つも読み込まれていない場合、新規dvbファイルが自動生成されます。手動で新規のdvbファイルを作成をするにはAutoCADのメニューバーから[管理]>[アプリケーション]内にある[VBA管理]ボタンを押下します。([アプリケーション▼]の押下で拡張)

[VBA管理]ウィンドウが表示されるのでウィンドウ右側の[新規作成]ボタンを押下することで新規dvbファイルを作成することができます。作成したdvbファイルはどこにも保存されていない状態(Global)のため後述の方法もしくは同ウィンドウの[名前を付けて保存]ボタンから保存を行う必要があります。

またVBEの起動や後述しているdvbファイルのロード/ロード解除やマクロの実行などのVBA開発における基本操作はすべてこのウィンドウから行うことができます。どこから操作するかわからなくなった場合はこの[VBA管理]ウィンドウを起動すれば基本的には解決します。

AutoCAD VBAの参照設定

VBEを起動したら参照設定を確認します。
メニューバー>[ツール]>[参照設定]をクリックすると下記ウィンドウが表示されます。
参照可能なライブラリファイルのなかで「AutoCAD ○○ Type Library」にチェックが付いていることを確認して、付いていない場合はチェックを付けてウィンドウ右上の[OK]ボタンを押下します。

参照設定とは、VBAコード内で外部のライブラリやオブジェクトモデルに対して、その機能やメソッドを利用するために必要なリンクを確立することを指します。つまり「AutoCAD ○○ Type Library」を参照設定することでAutoCAD VBAで用意されているオブジェクトやそのプロパティ/メソッドにアクセスしてVBAコード内で使用することが可能になります。

この参照設定でExcel VBAのライブラリである「Microsoft Excel ○○ Object Library」を読み込ませると、AutoCAD VBAでExcelを操作することも可能になります。外部のアプリケーションと連携するマクロでない場合は上画像の3つのチェックさえついていれば問題ないです。

 

VBAコードの作成

コードはプロジェクトエクスプローラー内のThisDrawingもしくは新規作成可能な標準モジュール、クラスモジュール、UserFormのいずれかに記載します。標準モジュール、クラスモジュールはコードをよりキレイにまとめるためのもので、UserFormは入力用のダイアログを作成するためのものです。すこし複雑な内容なので初心者のうちはこれらモジュールは気にせずThisDrawing内にコードを記載すればよいと思っておけば問題ないです。(本サイトも基本はThisDrawingのみにコードを書いていきます)

プロジェクトエクスプローラー内にあるThisDrawingの項目をダブルクリックすることでThisDrawingのコードウィンドウをアクティブ(表示)にすることができます。

 
表示されたコードウィンドウに実行したいコードを記載します。
ここではサンプルコードとして下記のコードをコピーして貼り付けます。

VBE上部の実行ボタンを押下することでコードが実行されます。(ショートカットキー[F5]でも可)
※VBEの実行ボタンは開発者向けのものでマクロ完成後にユーザーが実行する方法は別にあります。

VBAのコードを作成する方法自体は上記の通りで、コードウィンドウに実行したいコードを書き、実行ボタンで動きの確認、これをマクロが完成するまで繰り返し試行錯誤していく流れとなります。実際にAutoCADを自動化するには上記のような単純なコードではなく数百、数千行になっていくものもありますし、エラー処理やデバッグ作業等も必要になってきますが基本の動きは変わりません。

VBAマクロファイル(.dvb)の保存場所設定

dvbファイルはドキュメントのファイル(.dwg)とは別のファイルで保存されます。
保存場所はどこでも問題ないですが基本的にはAutoCADのオプションの「信頼できる場所」に設定されているディレクトリが推奨されます。「信頼できる場所」はAutoCADオプションの[ファイル]タブ内で設定が可能です。(オプションは左上AutoCADアイコン>[オプション]より起動)

オプションウィンドウ右側の[追加]ボタンを押下して、dvbファイルを格納する場所を設定します。

このとき、設定するフォルダが読み取り専用のフォルダでない場合は、下記のようなメッセージが表示されます。設定したフォルダの場合、誰かが書き換える可能性があるという警告ですが、特に心配が無ければ[継続]ボタンを押下してオプションウィンドウで[適用]ボタンを押下すれば設定は完了です。

基本的に作成したdvbファイルはここで設定したフォルダに格納していきます。

「信頼できる場所」に設定されていないディレクトリ内にあるdvbファイルを読み込もうとすると下記の警告が表示されます。[常にロードする][1回ロードする]のいずれかのボタンを押下すれば読み込み可能です。[常にロードする]を押下した場合はAutoCADが終了されるまでこの警告なしでdvbファイルを読み込むことが可能になり、[1回ロードする]を押下した場合は2回目以降のdvbファイルの読み込みで同じく警告が表示されます。[ロードしない]を押下すると読み込みをキャンセルします。

 
個人で作成して個人で使うVBAマクロであれば、「信頼できる場所」の設定はしなくても問題ないです。設定しておけば警告が出ないので設定しておいた方が楽という程度の内容です。

社内やグループなどの複数人で同じdvbファイルを共有する場合は「信頼できる場所」を読み取り専用フォルダで設定しておく方が無難です。dvbファイルにパスワードをかけていない場合、誰でも編集可能になってしまい意図せずコードが改変されてしまう可能性があります。開発環境としては開発者のローカルで開発して、ユーザーに配布する時は「信頼できる場所」(読み取り専用の共有フォルダ)に格納していくというのが開発者側が楽でセキュリティ的にも安心できる運用方法です。

VBAマクロファイル(.dvb)の保存

dvbファイルはVBE上部にある[上書き保存]ボタンを押下することで保存ができます。
(メニューバー>[ファイル]>[…の上書き保存] もしくは ショートカットキー[Ctrl]+[S]でも可)

[名前を付けて保存]ウィンドウが表示されるので任意の場所に名前を付けて保存します。
保存場所は上項で設定した「信頼できる場所」に保存することが推奨されます。
dvbファイルの保存後はVBEの[上書き保存]ボタンを押下すると上書き保存されます。

 

VBAマクロファイル(.dvb)のロード/ロード解除

dvbファイルを使うにはマクロを使用したいAutoCADでdvbファイルを読み込ませる必要があります。
dvbファイルの読み込みはファイル内のコードを確認したり変更したい場合にも必要な操作です。

dvbファイルを読み込むにはメニューバー>[管理]>[アプリロード]ボタンを押下します。

[アプリケーションのロード/ロード解除]ウィンドウが表示されるので、読み込みたいdvbファイルを選択しウィンドウ中央にある[ロード]ボタンを押下することで、AutoCADにdvbファイルを読み込ませることができます。(ファイルの種類をVBAファイルにすることでフィルタリングすることが可能)

 
ロードされたdvbファイルは同ウィンドウの左下にある[ロードされたアプリケーション]のリスト内に表示されます。読み込ませたdvbファイルのロードを解除したい場合は、リスト内で対象のdvbファイルを選択し、ウィンドウ右側にある[ロード解除]を押下することでロードを解除することができます。

 
 icon-info-circle AutoCAD起動時の自動ロード (スタートアップ登録)

dvbファイルはAutoCADを再起動するとすべてロードが解除されるため、再度ロードし直す必要があります。AutoCAD起動時に毎回自動で読み込ませたい場合は[スタートアップ登録]の設定をすることで毎回手作業でロードする必要がなくなります。スタートアップ登録はウィンドウ右下の[スタートアップ登録]フレーム内の[内容]ボタンを押下して行います。表示される[スタートアップ登録]ウィンドウの[追加]ボタンを押下して自動読み込みさせたいdvbファイルを追加することで設定が完了し、以降AutoCADの起動時に自動でdvbファイルがロードされるようになります。

マクロの自動読み込みを解除したい場合は同ウィンドウの[除去]ボタンを押下して、アプリケーションのリストから削除すれば自動読み込みが行われなくなります。

 

VBAマクロの実行

VBAマクロを実行するにはメニューバー>[管理]>[VBA マクロ実行]ボタンを押下します。
(コマンドラインで”VBARUN”実行 もしくは ショートカットキー[Alt]+[F8]でも可)

[VBA マクロ実行]ボタンを押下すると[マクロ]ウィンドウが表示されます。
[マクロ]ウィンドウには実行可能なマクロ一覧が表示されるので、実行したいマクロを選択してウィンドウ右側の[実行]ボタンを押下することで該当のマクロを実行することができます。

画面のカスタマイズ(メニューバー>[管理]>[ユーザ インターフェース])を使うことでツールバーやリボンにVBAを実行させるボタンを作成することも可能です。

 

まとめ

本ページはAutoCAD VBAを実行するのに必要最低限の基礎的な情報を紹介しました。
以下の内容さえ理解しておけばVBA開発をいつでも始めることができます。

・dvbファイルの作成
・AutoCAD VBAの参照設定
・VBAコードの作成
・dvbファイルの保存場所設定
・dvbファイルの保存
・dvbファイルのロード/ロード解除
・VBAマクロの実行

あとは自動化できるコードを書けるようにするだけです。(最も核となる部分ですが)
VBAの基礎的な知識はExcel VBAだけでも習得可能です。VBA完全初心者の方はExcel VBAをある程度理解するとAutoCAD VBAもすんなり理解することができるようになるので情報量の多いExcel VBAから始めるのも1つの手です。(特にFor~NextやIf文などの基本構文はExcel VBAだけでも習得可能)

メインページへ戻る
 

 icon-book 独学でAutoCADを自動化する

2024年1月7日AutoCAD, VBA

Posted by Lic