AutoCADの作図・修正作業を効率化するために、VBAを活用してみたいと考えていないでしょうか。しかし、実際にできることがわからず、VBAを利用できていない人も多いはずです。
そこでこの記事では、AutoCADのVBAでできること・できないことをわかりやすくまとめました。また初心者向けに使い方やVBAの基礎知識も解説しているので、AutoCADを効率化する参考にしてみてください。
AutoCADのVBAとは
AutoCADに搭載されたVBAは、AutoCAD内の動作を自動化できる便利な機能です。
VBAは、Microsoftが提供しているExcelやPowerPointなどにも搭載されたプログラミング言語であり、さまざまなソフトウェアの自動化・仕組み化に活用されています。
「手間のかかる作業をワンクリックで終わらせたい」「繰り返し作業を一瞬で完了させたい」など、できることが豊富です。AutoCAD上にある「管理>アプリケーション>Visual Basic Editor」から起動でき、新ウィンドウ上でソースコードを記述していきます。
また、できることを知る前に、AutoCADのVBAの概要を知りたい方は、本記事と合わせて以下の記事をチェックしてみてください。
AutoCADのVBAでできること
AutoCADのVBAでは、AutoCAD内に搭載されたコマンドを呼び出して、自動で実行できる仕組みをつくり出せます。参考として、以下より目的ごとにできることをまとめました。
作図のためにできること
Sub test()
‘ポリラインのコマンドを起動していくつ座標を設けるか決める
Dim plineObj As AcadLWPolyline
Dim points(0 To 3) As Double
‘ポリラインの配置座標
points(0) = 500: points(1) = 500
points(2) = 1000: points(3) = 1000
‘ポリラインをモデルスペースへの配置を指示する
Set plineObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)
End Sub
AutoCADのVBAでは、次のような作図コマンドを呼び出し、特定の位置に挿入するといった指示が可能です。
- 線分
- ポリライン
- 円
- 矩形
- ハッチング
例えば、上画像のVBAのプログラムは「2点間(起点・終点)にポリラインを配置する」というものです。今回はひとつの指示を出しましたが、さらにコードを追加すれば、複数個のオブジェクトを配置するといった使い方もできます。
修正のためにできること
Sub test()
‘代入する値を設定する
Dim Object As AcadObject
Dim Point As Variant
Dim font As String
‘文字列変更の条件を設定する
ThisDrawing.Utility.GetEntity Object, Point, “文字を選択”
font = Object.TextString
font = Replace(font, “12345”, “ABCDE”)
Object.TextString = font
End Sub
AutoCADのVBAでは、修正コマンドについても自動化できることが複数あります。
参考として以下に、主にできることの例をまとめました。
- 挿入したオブジェクトの色、線の太さなどを調整する
- 挿入したフォントのスタイルやサイズを調整する
- オブジェクトの特定の位置をトリムする
- オブジェクトの起点・終点間の距離を表示する
なお、上画像に掲載しているのは「特定の文字列を別の文字列に書き換える」というシンプルなVBAのプログラムです。VBAを起動して、AutoCAD上にある特定(今回は12345)の文字列をクリックすれば、ABCDEという文字列に書き換わります。
ファイル管理のためにできること
Sub test()
‘レイヤーを新規作成する(1行につき1つ)
Set oLayer = ThisDrawing.Layers.Add(“BCD”)
Set oLayer = ThisDrawing.Layers.Add(“STR”)
Set oLayer = ThisDrawing.Layers.Add(“TXT”)
End Sub
AutoCADのVBAでできることのなかでも、特に使いやすいのがファイル管理に関する活用です。参考として以下に、できることのイメージをまとめました。
- レイヤーの項目を追加・削除・設定する
- ファイル保存時の名称を自動で決める
- 作成したオブジェクトを自動でブロック登録する
- 印刷する際の設定を瞬時に呼び起こす
なお、上記に掲載しているサンプルコードは「レイヤーを新規作成する」というシンプルなものです。1行ずつに1つのレイヤーが設定されているため、起動すれば「BCD」「STR」「TXT」というレイヤーが瞬時に挿入されます。
なおAutoCADのVBAでできることは、紹介したものだけではありません。
ほかにもさまざまなできることがあるので、Autodesk社が公開しているVBAのリファレンスなどを参考に、自分の目的に合うプログラムを組んでみてください。
AutoCADのVBAでできないこと
AutoCADのVBAは自動化に役立つ便利な機能ですが、できることばかりではなく一部でできないことがあります。以下より、できないことの特徴を整理しました。
大規模なアプリケーション開発
AutoCADに搭載されているVBAは、次のような開発向けのプログラミング言語とは違い、小規模な仕組み化に利用できるのが特徴です。
- Java
- C++
- C#
- Python
そのため「ひとつのアプリをつくる」「複数の機能がまとまったシステムをつくる」というように、大規模なアプリケーション開発には向いていません。あくまでAutoCADの自動化や仕組み化など、できることがソフト内のコマンドに依存すると覚えておきましょう。
3Dグラフィックス
AutoCADのVBAは、2DCADでできることが多い一方、3DCADとして使うときにはできることが限られる点に注意してください。
例えば、3Dモデリングに関するVBAのソースコードが少ないため「何かひとつの3DモデルをVBAだけで作成する」といった対応が難しいです。また、レンダリングなどの細かな3Dブラフィックスの描画を設定できないケースが多い点にも注意してください。
もちろん、3Dモデルの作成にもVBAで対応はできますが、記述するコードが長くなりやすいため、初心者にとっては作業が複雑化しやすい点に注意してください。
マルチスレッド処理
VBAはシングルスレッド処理であることから、処理パフォーマンスを高めるマルチスレッド処理に対応していません。
とくに複雑な処理の場合にはマルチスレッド処理が求められることから、長文で書かれたVBAのプログラムの場合には処理時間が長くなりやすい点に注意してください。
場合によっては長文を書く影響で、処理落ちする、エラーが起きる恐れもあるため、AutoCADでVBAを書く際にはシングルスレッド処理内でできることをイメージしたうえで動くことが大切です。
またAutoCADのVBAとは別に、自動化に使えるプログラミング言語「LISP」というものがあります。できることだけでなく、ほか機能とVBAの違いを知りたい方は、以下の記事をチェックしてみてください。
AutoCADのVBAの使い方
AutoCADのVBAは、コマンドを起動したのち上画像の「ThisDrawing」より作業を開始できます。
まずやらなければならないのが、プログラムの箱ともいえる「Sub 名称()」「End Sub」の記述です。今回はtestという名称で入力していますが、VBAではこの2つの内側にコードを書かなければなりません。
参考として「AutoCAD上でAutoCAD VBAと表示されるコード」を書いてみました。
Sub test()
MsgBox “AutoCAD VBA”
End Sub
あとは作業ウィンドウの上側にある再生マークをクリックすれば、次の画面が表示されます。
VBAを利用する一連の流れは以上です。
初心者から手軽に利用できるので、本記事で紹介したできることにチャレンジしてみてください。
AutoCADのVBAでできることをセミナー講習で学ぼう
AutoCADのVBAのできることを理解し、実際にチャレンジしてみようと考える人も多いでしょう。
しかし「思うように操作できない」「細かい部分がよくわからない」と悩んで手が止まってしまう人もいるはずです。また独学で挫折をしてしまう人が出てくるかもしれません。
もし挫折をせずに効率よくAutoCADのVBAでできることを学びたいなら、プロからVBAでできることを学べるセミナー講習に参加しましょう。参考として、以下にセミナー講習でVBAを学ぶメリットをまとめました。
- 1から使い方を説明してもらえる
- わからない部分を質問して解決できる
- 調べてもわからないコツを学べる
- VBA以外の自動化機能やできることを学べる
「実践的に学べるAutoCAD自動化セミナー」では、AutoCADのVBAはもちろん、LISP、アクションマクロ、スクリプトといったさまざまな自動化機能を学べます。
2日間で学び終えられる短期集中型のセミナーですので、急いでVBAでできることを学びたい人はリンクをチェックしてみてください。
AutoCADのVBAでできることについてまとめ
AutoCADのVBAでは、作図や修正、データ管理などできることがいくつもあります。そういったなかで自分ができることを増やしたいなら、独学やセミナー講習で知識を身につけることが重要です。
本記事で紹介したサンプルコードなどを使いながら、ぜひAutoCADのVBAでできることを学習していきましょう。
