SeaGate HomePage 別館
本館 別館 ブログ
 
トップページ
第01回
第02回
第03回
第04回
第05回
第06回
第07回
第08回
第09回
第10回
第11回
第12回
第13回
第14回
おまけ
VBAではじめるAutoCADカスタマイズ VBAではじめるAutoCADカスタマイズ
第1回 まずはVBAを体験してみよう!

■ はじめに

AutoCADにはVBA(Visual Basic for Applications)やVisual Lisp、ObjectARXなどの強力なカスタマイズ環境が搭載されており、AutoCAD自身のカスタマイズや作図作業の自動化、他のアプリケーションとの図面やデータの共有などを行うことができます。中でもVBAは、Microsoft Office製品などにも搭載されている汎用的なプログラミング言語で、初心者にも習得しやすく上述したようなAutoCADのカスタマイズはもちろんのこと、習得した知識がExcelやWordなどのVBA搭載アプリケーションにも応用できるなどのメリットがあります。

前置きはこのくらいにして、まずはAutoCAD VBAを使って実際にプログラムを作成してみましょう。今回は初めて作成するVBAプログラムとしてHello Worldを取り上げます。AutoCADの作図ウィンドウに"Hello, World!"と表示するだけの単純なプログラムですが、AutoCAD VBAプログラムを作成する上で必要となる基本的な操作を体感してみてください。

■ Visual Basicエディタの起動

AutoCADで新規図面を作成し、[ツール]メニューの[マクロ]-[Visual Basic Editor]を選択すると[Microsoft Visual Basic]ウィンドウが開きます。このウィンドウをVisual Basicエディタといい、プログラムコードの入力や編集、実行やデバッグ(プログラムの誤りを修正する作業)など、VBAプログラムの作成に必要な一連の作業を統合的に行うことができる開発環境です。Visual BasicエディタはVBA IDE(Integrated Development Environment)などとも呼ばれ、AutoCADのコマンドラインから"VBAIDE"と入力するか、[Alt]+[F11]キーを押して起動することもできます。

Visual Basicエディタ
Visual Basicエディタ

■ Visual Basicエディタの画面

初期設定ではVisual Basicエディタの左側にはプロジェクトエクスプローラとプロパティウィンドウが表示されています。プロジェクトエクスプローラでは、AutoCADにロードされているすべてのVBAプロジェクトをWindowsのエクスプローラのようなツリー形式で参照することができます。またプロパティウィンドウは、主にユーザーフォームやユーザーフォーム上のコントロール(ボタンやテキストボックスなどのウィンドウを構成する基本的な部品)の位置や外観、動作の設定などを行うために使用します。

VBAプロジェクトとは?

VBAプログラムはプロジェクトという単位で管理され、複数のプロジェクトをAutoCADにロードして使用することができます。1つのVBAプロジェクトにはプログラムコードだけを記述する標準モジュールや、ボタンやテキストボックスなどのコントロールを貼り付けて独自のウィンドウやダイアログボックスを作成することができるユーザーフォーム、クラスと呼ばれる特殊なプログラムコードを記述するクラスモジュールなどを複数含めることができます。

AutoCADではVBAプロジェクトをExcelやWordのようにDXFやDWG形式の図面内部に埋め込んで保存することも、拡張子dvbの独立したファイルとして保存することもできます。

■ プログラムコードの入力

次はいよいよVBAプログラムの入力を行います。プロジェクトエクスプローラの「ThisDrawing」をダブルクリックすると標準モジュールのコードウィンドウが開きます。VBAプログラムはこのようなコードウィンドウに記述していきます。


コードウィンドウに"Public Sub HelloWorld"と入力し、[Enter]キーを押すと"Public Sub HelloWorld"のあとに"()"が追加され、1行あけて"End Sub"という文字列が自動的に追加されます。この"Public Sub HelloWorld"の行と"End Sub"の行の間に、以下のAutoCADに"Hello, World!"と表示するためのプログラムコードを入力します。

> プログラムコードを別ウィンドウで表示 ※ 行番号を入力する必要はありません

さて、3行目の"Dim insPoint(0 To 2) As"に続けて[Space]キーを押した直後など、プログラムコードの入力を行っている途中でリストボックスやツールチップがいくつか表示されたと思います。これはインテリセンスと呼ばれるVisual Basicエディタが提供する入力支援機能で、入力したプログラムコードに続くコードの選択肢一覧やプログラムコードの記述方法に関するヒントなどが表示されます。

インテリセンス
インテリセンス

また、9行目の"AddText"を選択して[F1]キーを押してみてください。ヘルプウィンドウが開いて選択したプログラムコードに関する解説が表示されます。このようにVisual BasicエディタにはVBAプログラムの作成を楽にしてくれる機能が多数備わっています。

ヘルプウィンドウ
ヘルプウィンドウ

■ VBAプロジェクトの保存

プログラムコードの入力が終わったら、[ファイル]メニューの[Global1の上書き保存]を選択して作成したVBAプロジェクトを保存しておきます。保存するVBAプロジェクトファイルは拡張子がdvbになります。もしAutoCADに編集中の図面がある時はこちらも保存しておきます。

今回作成したような簡単なプログラムでは問題ありませんが、VBAはAutoCADを内部から直接操作しているため、プログラムに誤りがあるとAutoCADがハングアップしてしまうこともあり得ます。大切な図面やせっかく作成したプログラムを失わないためにも、VBAプログラムを実行する前には必ず保存するようにしましょう。

■ VBAプログラムの実行

VBAプログラムを実行するには、カーソルを"Public Sub HelloWorld()"の行と"End Sub"の行の間の任意の場所に置いて[実行]メニューの[Sub/ユーザーフォームの実行]を選択するか、[F5]キーを押します。


プログラムコードに誤りがある場合はエラーメッセージが表示されます。[実行]メニューの[リセット]を選択してプログラムの実行を停止し、入力したプログラムコードに間違いがないか見直してください。エラーメッセージが表示されなければ[ファイル]メニューの[終了してAutoCADへ戻る]を選択してVisual Basicエディタを閉じます。

AutoCADの作図ウィンドウに"Hello, World!"という文字が表示されましたか?もし何も表示されていないようなら、[オブジェクト範囲ズーム]コマンドを実行してみてください。


AutoCADから実行するには?

作成したりロードしたVBAプログラムは、いちいちVisual Basicエディタを起動しなくてもAutoCADから直接実行することができます。AutoCADからVBAプログラムを実行するには[ツール]メニューの[マクロ]-[マクロ]を選択し、表示された[マクロ]ダイアログで実行したいVBAプログラムを選択して[実行]ボタンをクリックします。[マクロ]ダイアログはコマンドラインから"VBARUN"と入力するか、[Alt]+[F8]キーを押して表示させることもできます。

マクロダイアログ
マクロダイアログ

■ VBAプロジェクトの管理

AutoCADにはVBAプロジェクトの管理を行う[VBA管理]ダイアログが備わっています。[VBA管理]ダイアログを表示するには[マクロ]メニューの[VBA管理]を選択するか、AutoCADのコマンドラインから"VBAMAN"と入力します。

VBA管理ダイアログ
VBA管理ダイアログ

[VBA管理]ダイアログの[ロード]ボタンをクリックすると、ファイルに保存したVBAプロジェクトをAutoCADに読み込んで編集したり実行したりすることができます。また、VBAプロジェクトを選択して[ロード解除]ボタンをクリックすると、AutoCADからVBAプロジェクトが取り除かれ、メモリを解放することができます。

その他[VBA管理]ダイアログでは、VBAプロジェクトの新規作成や図面への埋め込み、[マクロ]ダイアログやVisual Basicエディタの起動などを行うことができます。

■ 最後に

いかがでしたか?今回作成したプログラムは単純なものでしたが、AutoCAD VBAによるプログラミングを体感していただけたでしょうか?次回はVBAによるプログラムを理解する上での基礎となる、ActiveXオートメーションやAutoCADのオブジェクトモデルについて解説したいと思います。
SeaGate
コレクション



inserted by FC2 system