はじめに
Excel VBAとAutoCADを組み合わせることで、図面作成の効率化と自動化が可能になります。この記事では、AutoCADのコマンドラインにコマンドを送信して、線分(Line)を描く方法を紹介します。線分は最もシンプルな図形ですが、応用範囲は非常に広く、基本操作として習得しておくと便利です。
線分を描くコマンド
ずはAutoCADのコマンドラインに以下のように入力してみましょう。最後にエンターキーを押すのを忘れずに。
LINE 0,0 100,100
このコマンドは、始点が (0,0)、終点が (100,100) の線分を描きます。
途中でカーソルが自動でコマンドラインから移りスムーズに入力できない場合があります。その時はコマンドラインに「DYNMODE」と入力し、値を「0」にしましょう。試行後、いつもの操作にも戻したい場合はDYNMODEの値を戻すことを忘れずに。
線分(Line)を描くサンプルコード
それでは、Excelに入力した座標を使って線分を描くVBAコードを紹介します。以下のようなExcelシートを準備してください。

A2からA4が入力セルになっています。
次にVBAコードです。次のコードをコピーしてエクセルのVBAエディタに貼り付けてください。
VB
Sub DrawLineByCommand()
'AutoCADアプリケーションオブジェクトを宣言
Dim acadApp As Object
'AutoCADドキュメントオブジェクトを宣言
Dim acadDoc As Object
'描画に必要な変数の宣言
Dim x1 As Double '起点のX座標
Dim y1 As Double '起点のY座標
Dim x2 As Double '終点のX座標
Dim y2 As Double '終点のY座標
Dim commandText As String
'AutoCADが起動していなければ起動し、すでに開いていたら取得する。
On Error Resume Next
Set acadApp = GetObject(,"AutoCAD.Application")
If acadApp Is Nothing Then
Set acadApp = CreateObject("AutoCAD.Application")
End If
On Error GoTo 0
'AutoCADドキュメントを新規作成、または取得する。
On Error Resume Next
Set acadDoc = acadApp.ActiveDocument
If acadDoc Is Nothing Then
Set acadDoc = acadApp.Documents.Add
End If
On Error GoTo 0
'エクセルから値を取得する
x1 = Cells(2, 1)
y1 = Cells(2, 2)
x2 = Cells(2, 3)
y2 = Cells(2, 4)
'コマンド文の作成
commandText = "LINE " & x1 & "," & y1 & " " & x2 & "," & y2 & " "
'コマンドの送信
acadDoc.SendCommand commandText & vbCr
'AutoCADを表示
acadApp.Visible = True
'メッセージを表示
MsgBox ”線分を描きました!”
End Sub
- 2~5行目でAutoCADのオブジェクトを準備します。
- 7~12行目が作図に必要な変数です。
- 14~20行目で、AutoCADオブジェクトをセットします。すでにAutoCADを立ち上げていれば、それをセットし、立ち上げていなければ新規で立ち上げます。
- 22~28行目で、AutoCADのファイルをセットします。すでに図面を立ち上げていれば、それをセットし、立ち上げていなければ新規でファイルを作成します。
- 30~34行目でエクセルからの値を取得します。
- 37行目でコマンド文を作成しています。本コードの肝となる部分です。
- 40行目でコマンドをAutoCADに送信しています。本コードの肝となる部分その2です。コマンドを確定するため、改行(vbCr)を付け加えます。
おわりに
線分は図面の基本構成要素であり、他の図形の基礎にもなります。今回の方法を応用すれば、複雑な図形の構築や寸法線の自動生成なども可能です。ぜひ日常業務に取り入れて、AutoCADの自動化を楽しんでください!

線を引くだけ?いや、これは未来への直線です。
コメント