Определите тип художественного слова в PowerPoint 2010
Мне нужно знать, выбрана ли форма слова искусство или нет.
Shape имеет свойство " Type" (возвращает перечисление MsoShapeType). Когда я вставляю слово art и проверяю это свойство - оно возвращает msoAutoShape вместо msoTextEffect (с AutoShapeType==msoShapeRectangle).
Как я могу проверить, что spae - это слово art (не обычный прямоугольник с текстовым полем)?
Спасибо!
1 ответ
Если вы выберете либо общую форму Smartart, либо щелкнете по тексту внутри формы Smartart, либо выберете одну из фигур в Smart Art, ActiveWindow.Selection.ShapeRange(1) вернет форму Smartart.
Так
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