前回、画層を追加できたので、
今回は、オブジェクトが属する画層を
追加した画層に変更してみました。
それから、追加した画層以外を削除してみました。
が、まだ、完全に実行できていません。
なので、試行錯誤となってます。
↓今回、テストに使ったExcel VBAマクロソース
━─━─━─━─━─━─━─━─━─━─
・「AcadDocument」を、グローバル変数としました。
・「Call 画層変更」 で、画層変更を処理を呼び出します。
↓画層変更プロシージャ
━─━─━─━─━─━─━─━─━─━─
画層変更プロシージャですが、
まず、画層のロックを解除します。
━─━─━─━─━─━─━─━─━─━─
For Each templayer In gAcadDocs.Layers
templayer.Lock = False
Next
━─━─━─━─━─━─━─━─━─━─
解除せず画層を変更しようとするとエラーが発生します。
画層ロック解除後、図形の画層を、"TEST-A"に変更します。
━─━─━─━─━─━─━─━─━─━─
For Each acObj In gAcadDocs.ModelSpace
acObj.Layer = "TEST-A"
Next
━─━─━─━─━─━─━─━─━─━─
画層"TEST-A"を現在の画層にします。
━─━─━─━─━─━─━─━─━─━─
gAcadDocs.ActiveLayer = gAcadDocs.Layers.Item("TEST-A")
━─━─━─━─━─━─━─━─━─━─
最後に、画層”TEST-A"と、"0"を残して他の画層は削除。
(”0”は、必ず必要のもよう。)
━─━─━─━─━─━─━─━─━─━─
For Each templayer In gAcadDocs.Layers
If templayer.Name <> "TEST-A" And templayer.Name <> "0" Then
templayer.Delete
End If
Next
━─━─━─━─━─━─━─━─━─━─
しかし、「templayer.Detele」でエラー発生。
AutoCAD上で、画層削除を削除しようとすると、
画面上に表示されているオブジェクト全て削除してから
該当の画層を削除しても、「削除できません」と
表示されてしまいます。
どうも、ブロック定義が残ってるようなのですが、
いまいちはっきりせず・・・。
AutoCAD上で操作して
この辺りをはっきりさせたいと思います。
はっきりすればいいけど・・・。
押さなくてもいいけど・・・
←←MicroAdマイクロアドMicroAd←←