Перекрасить картинку в черно-белую на 75% с помощью Word VBA - PullRequest
0 голосов
/ 10 февраля 2020

Я использую ниже, в документе Word.

Sub Recolor()

Dim pic As InlineShape
Dim shp As Shape

Set pic = Selection.InlineShapes(1)
Set shp = Selection.ShapeRange(1)

pic.PictureFormat.ColorType = msoPictureBlackAndWhite
shp.PictureFormat.ColorType = msoPictureBlackAndWhite

End Sub

Это выполняет Black and White 50%

Но мне нужно Black and White 75%, Как можно кодировать 75% Перекрасить

1 Ответ

1 голос
/ 10 февраля 2020

В объектной модели VBA нет хуков для всех преобразований цвета в Word. 75% в черно-белом 75% относится к параметру преобразования цвета, называемому Порог в XML. Но порог не доступен в VBA. Вот макрос, который дает похожий вид за счет снижения яркости, увеличения контрастности и уменьшения насыщенности. Вы можете поиграть со значениями и порядком команд, что влияет на окончательный вид:

Sub Recolor()
    Dim pic As InlineShape

    Set pic = Selection.InlineShapes(1)
    With pic
        With .PictureFormat
            .Brightness = 0.24
            .Contrast = 1
        End With
        With .Fill.PictureEffects
            .Insert(msoEffectSaturation).EffectParameters(1).value = 0
        End With
    End With
End Sub
...