다음 코드를 사용하여 도큐멘트의 도형 줄을 모두 선택하고 삭제합니다.word 2007 vba는 한 번에 모든 도형 줄을 지울 수 없습니다.
그것은 MS 워드 2003에서 잘 작동 (또한 2007 년에 열 때 2003을 사용하여 그린 선에 대한) 그러나 그것의 MS 워드에 그려진 선을 선택하지 2007
Sub line()
Dim shp As Shape, intBoxNbr As Integer
intNbrShapes = 0
For Each shp In ActiveDocument.Shapes
If shp.Type = msoLine Then
intNbrShapes = intNbrShapes + 1
ActiveWindow.ScrollIntoView Selection.Range, True
shp.Select
Selection.Delete
'shp.Delete
'(Selection.Delete is used in MSWord 2007 and shp.Delete used in MSWord 2003)
End If
Next shp
End Sub
내가 찾은 그 MSword 2007에서 그려진 선은 Autoshape ##이라는 이름을 가지고 있는데, 2003은 line ##을 가지고 있습니다. 문서에서 다른 자동 모양 (텍스트 상자 등)을 사용하므로 "if shp.Type = msoAutoShape Then"을 사용할 수 없습니다. MS 워드 2007을 사용하여 그려진 선을 선택하고 삭제하는 방법을 도와주십시오.
감사합니다.
코드를 지금 업데이트했습니다 ... 모든 행을 한꺼번에 제거하지 못했습니다. 매크로를 여러 번 실행하여 모두 제거해야합니다. 당신이 모음에서 항목을 제거 할 때
Sub Macro1()
'
' Macro1 Macro
'
Dim shp As Shape, i As Integer
i = 0
For Each shp In ActiveDocument.Shapes
If shp.Type = msoAutoShape Then
i = i + 1
ActiveWindow.ScrollIntoView Selection.Range, True
shp.Select
If Selection.ShapeRange.Line.DashStyle = msoLineSolid Then
Selection.Delete
End If
'shp.Delete
End If
Next shp
End Sub
당신이 디버깅 할 무슨 짓을 작동? 'For Each shp' 문에 중단 점을 넣고 알려진 "줄"에 대한'shp.Type' 속성을 확인하십시오. 'msoLine' 타입이 아닐 수도 있습니다. 그러면 그 모양을 선택/삭제하는 것이 "실패"합니다. –
좀 더 간단한 설명을 해줄 수 있습니까? – user2531449
이러한 조건을 테스트하기 위해 2003 또는 2007을 사용할 수 없으며 2010 년 셰이프 기본 이름이 설명과 다릅니다 (대신 "직선 커넥터 1"등). 따라서 디버깅을하고 다양한 속성을 사용하여 가능한 것을 확인해야합니다. –