VBA Picture Shadow Macro - PullRequest
       13

VBA Picture Shadow Macro

0 голосов
/ 13 декабря 2018

У меня есть набор изображений, к которым я хотел бы применить определенный стиль изображения - четвертый, который отображается в Word 2010:

picture style toolbar

У меня есть макрос, который будет проходить по всем изображениям, но мне нужно знать возможности для shadow.type.

Что было бы действительно полезно, так это ссылка на команды, которые будут использоваться для каждого типастиль изображения, с визуальным примером.

У меня нет VBA, поэтому я не могу исследовать элементы изображения.Я пробовал разные msoShadowxx, но это не сработало.

Есть ли хорошая ссылка с визуальными примерами или ссылка с настройками для каждого стиля изображения?Или настройки для стиля 4-го изображения (показанного здесь на скриншоте)?

Вот код макроса, который я использую для циклического перебора всех изображений.

Sub BorderMacroshadow()
Dim oInlineShp As InlineShape
For Each oInlineShp In ActiveDocument.InlineShapes
With oInlineShp
    .Line.Weight = 1
    .Line.ForeColor.RGB = vbBlack
    .Shadow.Type = msoShadow14
End With
Next
End Sub

Добавлено

При более внимательном рассмотрении ссылки на msoShadow видно, что она относится к графическим эффектам, «теням» «теней», а не к «стилям рисунков», которые, как я предполагаю, дополнительно используют некоторые элементы msoShadow.к другим элементам.

Итак, я ищу элементы, которые необходимы для дублирования 4-го «стиля изображения» (см. скриншот).Еще не нашли.

1 Ответ

0 голосов
/ 14 декабря 2018

Перечисление msoShadowType представляет собой группу предустановок.Они не обязательно используются в галерее на ленте.

Чтобы определить параметры любого форматирования теней, используйте различные свойства, доступные для Shape.Shadow, такие как Transparency, Size, Blur.В пользовательском интерфейсе это можно увидеть в «Эффекты рисунка», «Тень», «Параметры тени» в группе «Стиль рисунка» на ленте.

Чтобы определить / установить их программно, см. Следующий пример кода.Обратите внимание, что Angle - это не одно свойство, а комбинация OffsetX и OffsetY.

Sub ShadowProperties()
    Dim shp As Word.Shape
    Dim shw As Word.ShadowFormat

    Set shp = Selection.ShapeRange(1)
    Set shw = shp.Shadow
    With shw
      Debug.Print "Blur: " & .Blur, _
                "size: " & .Size, _
                "Transparency: " & .Transparency, _
                "Offset x: " & .OffsetX, _
                "Offset y: " & .OffsetY
    End With
End Sub
...