전체 스마트 아트 모양을 선택하거나 스마트 아트 모양 내의 텍스트를 클릭하거나 스마트 아트 내의 모양 중 하나를 선택하면 ActiveWindow.Selection.ShapeRange (1)이 스마트 아트 모양을 반환합니다. 당신이 지적했듯이
그래서
If ActiveWindow.Selection.ShapeRange(1).HasSmartArt Then
Debug.Print "It's smart art"
End if
[편집] 는하지만,이하지 워드 아트,의 SmartArt입니다. 내 실수 야, 미안해. WordArt 셰이프와 같은 것은 없습니다. WordArt 서식을 셰이프 전체 또는 셰이프 내의 텍스트에 적용한 셰이프와 비슷합니다. 글로, 반사, 그림자 등과 같은 서식을 포함하거나 WordArt 사전 설정 중 하나 일 수 있습니다. 미리 선택된 이러한 다양한 효과의 조합입니다. 이러한 사전 설정이 적용된 도형 내의 모양이나 텍스트 범위를 식별하는 데 도움이되는 예제를 추가했습니다. 적용 할 수있는 다양한 속성 (빛, 반사 등) 각각에 대해 각 실행 및 각 텍스트 상자를 보는 것 이외에 사용자가 적용한 WordArt 형식을 확인하는 간단한 방법은 없습니다. 불행히도 WordArtFormat = None을 사용하면 무시할 수 있음을 알릴 수 없습니다. 프리셋 중 하나이거나 -2 일 수 있습니다. 이는 여러 가지 것을 의미 할 수 있습니다.
Sub WordArtist()
Dim oSh As Shape
Dim oRng As TextRange2
' Has word art formatting been applied to
' entire shape?
Set oSh = ActiveWindow.Selection.ShapeRange(1)
Debug.Print oSh.TextFrame2.WordArtFormat
' Has it been applied to individual chunks of
' text within the shape
For Each oRng In oSh.TextFrame2.TextRange.Runs
Debug.Print oRng.Font.WordArtFormat
Next
' Note:
' A result of -2 for the entire shape could mean
' - No text in the shape; not really word art
' - Mixed formatting
' - Text/shape has had glow/shadow/reflection etc applied
' rather than one of the preset WordArt selections
End Sub
[이 질문과 답변] (http://stackoverflow.com/questions/16019942/find-the-type-of-a-shape). –
[This (http://stackoverflow.com/questions/16019942/find-the-type-of-a- 형태) 답변이 올바르지 않습니다. Shape.Type 속성 값의 예상 결과는 "msoTextEffect"이며, 단어 모양의 실제 결과는 "msoAutoShape"입니다. 그것이 문제이다. 그래서 저는 어떤 모양이 단어 예술이라는 것을 어떻게 결정할 지 아이디어가 없습니다. – AntonKolesnikov
Re "지금까지 해봤어요": 그 모양을 워드 아트로 결정했지만 성공하지 못했던 다른 속성을 사용하려고했습니다.이 모양은 직사각형 모양과 텍스트 상자와 동일하게 보입니다. 또한 나는 어떤 해결책이라도 google에 시도했다. 그리고 나는 msdn 사이트에서 bug (그 단어 art Shape.Type! = msoTextEffect)를 썼고 피드백을받지 못했습니다. – AntonKolesnikov