none
vba - > vb.net로 변환 RRS feed

  • 질문

  • AutoAcad의 도면중 블럭이 숫자를 찾고 블럭안의 글짜를 수정 합니다.
    AutoAcad의 vba에서는 잘 되는데 vb.net 에서는 아래 부분에서 안됩니다.
    왜 일까요?

    Sub Countblocks()

    Dim oBkRef As AcadBlockReference
    Dim ent As AcadEntity
    Dim Blocks As AcadBlocks
    Dim Block As AcadBlock

    Dim ob As Object
     
     For Each ent In ThisDrawing.ModelSpace  '도면내의 블럭 갯수
       If ent.ObjectName = "AcDbBlockReference" Then
         Set oBkRef = ent
            Set Blocks = ThisDrawing.Blocks '->  Blocks = acadDoc.Blocks
            Set Block = Blocks(oBkRef.EffectiveName)    '블럭명

            For Each ob In Block
               If InStr(ob.ObjectName, "Text") Then
                  If ob.TextString = "방진" Then ob.TextString = "이영춘"   '블럭내의 문자수정
               End If
             Next
           End If
      Next ent
    End Sub

    2016년 10월 26일 수요일 오전 3:00

답변

  • Sub Countblocks()

    Dim oBkRef As AcadBlockReference
    Dim ent As AcadEntity
    Dim Blocks As AcadBlocks
    Dim Block As AcadBlock

    Dim ob As Object
     
     For Each ent In ThisDrawing.ModelSpace  '도면내의 블럭 갯수
       If ent.ObjectName = "AcDbBlockReference" Then
         Set oBkRef = ent
            Set Blocks = ThisDrawing.Blocks '이곳에 문제가 아니었습니다. 
            Set Block = Blocks.item(oBkRef.EffectiveName)    '블럭명

               '이곳의 문제 였습니다.

            For Each ob In Block
               If InStr(ob.ObjectName, "Text") Then
                  If ob.TextString = "방진" Then ob.TextString = "이영춘"   '블럭내의 문자수정
               End If
             Next
           End If
      Next ent
    End Sub

    • 답변으로 표시됨 박희철 2016년 10월 26일 수요일 오전 7:31
    2016년 10월 26일 수요일 오전 7:31