vba 이용해서 copy 가 y +6 만큼 오프셋되게 복사되는 코드를 짜고 있는데
On Error Resume Next
If ThisDrawing.SelectionSets(“TEMP”) Then _
ThisDrawing.SelectionSets(“TEMP”).Delete
On Error GoTo 0
Public st As AcadSelectionSet
Set st = ThisDrawing.SelectionSets.Add(“TEMP”)
st.SelectOnScreen
Public pnt1 As Variant
Public pnt2 As Variant
Public pnt3(0 To 2) As Double
Public pnt4(0 To 2) As Double
pnt1 = ThisDrawing.Utility.GetPoint(, “1st Point”)
pnt2 = ThisDrawing.Utility.GetPoint(, “2nd Point”)
pnt3(0) = 0: pnt3(1) = 0: pnt3(2) = 0
pnt4(0) = 0: pnt4(1) = -6: pnt4(2) = 0
For Each 한개성분 In st
한개성분.Copy
한개성분.Move pnt1, pnt2
한개성분.Move pnt3, pnt4
Next 한개성분
ThisDrawing.SelectionSets(“TEMP”).Delete
End Sub
글 찾아보면서 짜집기 한 결과인데 사용하면 객체를 선택하고 ~~ 이어지는데
아예 객체를 선택하고 명령어, vba 를 사용했을때 바로 포인트잡고 카피되는 식으로 바꾸고 싶은데
이미 객체를 선택되어있는걸 어떻게 케이스를 나눌까요?
대강 if If not ThisDrawing.SelectionSets(“TEMP”) =nothing
Then goto ~~
이런식으로 해봤지만 안되서 여쭤봅니다