이런식으로 하면 됩니다. Dim oEnt As AcadEntity Dim oLayer As AcadLayer For Each oEnt In oSel With oEnt Set oLayer = ThisDrawing.Layers(.Layer) If oLayer.Lock = False Then .Color = 1 End If End With Next Set oLayer = Nothing
그리고.. 이와 같이 코드가 간단하고 에러가 락 걸린 레이어 외에는 없는 경우처럼 에러 날 여지가 없다고 판단되면 그냥 최초 코드 그냥 사용하시고 코드 맨 처음에 On Error Resume Next 이거 하나 넣으시고 에러가 나도 그냥 무시하고 넘어가도록해도 됩니다. On Error Resume Next가 절대 좋은 것은 아니나 한눈에 봐도 코드가 간단하고 에러날 부분이 뻔하면 에러 날 것에 대비해 코드 길게 만드느니 그냥 무시하고 넘어가도 되는쪽이 나을 수도 있습니다.
이런식으로 하면 됩니다.
Dim oEnt As AcadEntity
Dim oLayer As AcadLayer
For Each oEnt In oSel
With oEnt
Set oLayer = ThisDrawing.Layers(.Layer)
If oLayer.Lock = False Then
.Color = 1
End If
End With
Next
Set oLayer = Nothing
그리고..
이와 같이 코드가 간단하고
에러가 락 걸린 레이어 외에는 없는 경우처럼
에러 날 여지가 없다고 판단되면 그냥 최초 코드 그냥 사용하시고
코드 맨 처음에 On Error Resume Next 이거 하나 넣으시고
에러가 나도 그냥 무시하고 넘어가도록해도 됩니다.
On Error Resume Next가 절대 좋은 것은 아니나
한눈에 봐도 코드가 간단하고 에러날 부분이 뻔하면
에러 날 것에 대비해 코드 길게 만드느니
그냥 무시하고 넘어가도 되는쪽이 나을 수도 있습니다.