はじめに
AutoCADでの作業効率を向上させるために、画層の管理は非常に重要です。
本記事では、EXCEL VBAを使ってAutoCADで画層(レイヤー)の作成及び削除、アクティブ化する方法について説明します。
基本的なVBAコード
画層のアクティブ化
まず、既存の画層をアクティブにするVBAコードを紹介します。
VB
Sub ActiveLayer()
Dim acadApp As Object
Dim acadDoc As Object
Dim layer As Object
'AutoCADアプリケーションの取得
Set acadApp = GetObject(,"AutoCAD.Application")
Set acadDoc = acadApp.ActiveDocument
'指定の名称から画層を取得
On Error Resume Next
Set layer = acadDoc.Layers.Item("LayerName")
On Error GoTo 0
'指定した画層が存在しない場合の処理
If layer Is Nothing Then
MsgBox "指定した画層は存在しません。"
Exit Sub
End If
'画層をアクティブに設定
acadDoc.ActiveLayer = layer
End Sub
簡単な説明
ThisDrawing.ActiveLayerにセットすることで画層をアクティブにすることができます。
新しい画層を作成
次に、AutoCADで新しい画層を作成するための基本的なVBAコードを紹介します。
VB
Sub CreateLayer()
Dim acadApp As Object
Dim acadDoc As Object
Dim newLayer As Object
'AutoCADアプリケーションの取得
Set acadApp = GetObject(,"AutoCAD.Application")
Set acadDoc = acadApp.ActiveDocument
'新しい画層を作成
Set newLayer = acadDoc.Layers.Add("新しい画層名")
'画層のプロパティの設定
newLayer.Color = acRed
newLayer.LineType = "Continuous"
End Sub
詳細な説明
GetObject関数を使ってAutoCADアプリケーションを取得します。
ActiveDocumentプロパティを使って現在のドキュメントを取得します。
Layers.Addメソッドを使って新しい画層を作成し、名前を設定します。
ColorプロパティとLineTypeプロパティを使って画層の属性を設定します。
画層の削除
最後に、既存の画層を削除するための基本的なVBAコードを紹介します。
VB
Sub DeleteLayer()
Dim acadApp As Object
Dim acadDoc As Object
Dim delLayer As Object
'AutoCADアプリケーションを取得
Set acadApp = GetObject(,"AutoCAD.Application")
Set acadDoc = acadApp.ActiveDocument
'削除する画層を取得
On Error Resume Next
Set delLayer = acadDoc.Layers.Item("削除する画層名")
On Error GoTo OUT1
'指定した画層が存在しない場合の処理
If delLayer Is Nothing Then
MsgBox "指定した画層は存在しません。"
Exit Sub
End If
'画層を削除
delLayer.Delete
MsgBox "指定した画層を削除しました。"
Exit Sub
OUT1:
MsgBox "エラーが発生しました。: " & Err.Description
End Sub
詳細な説明
Layers.itemメソッドを使って削除する画層を取得します。
deleteメソッドを使って画層を削除します。
まとめ
画層の作成と削除は、AutoCADでの作業を効率化するための基本的なステップです。VBAを使うことで、これらの操作を自動化し、時間を説やすくすることができます。
AutoCADで画層をつくりすぎるとどうなる?
どこに何があるかわからなくなるから、結局また新しい画層を作る羽目になるんだ!
コメント