J'ai utilisé ci-dessous, dans un document 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

Cela effectue Black and White 50%

Mais j'ai besoin de Black and White 75%, comment le codage 75 % peut-il être recoloré ?

0
mgae2m 10 févr. 2020 à 11:42

1 réponse

Meilleure réponse

Le modèle objet VBA n'a pas de crochets pour toutes les transformations de couleurs qui sont dans Word. Le 75 % dans le noir et blanc 75 % fait référence à un paramètre de transformation de couleur appelé Seuil dans le XML. Mais le seuil n'est pas disponible dans VBA. Voici une macro qui obtient un aspect similaire en réduisant la luminosité, en augmentant le contraste et en réduisant la saturation. Vous pouvez jouer avec les valeurs et l'ordre des commandes, ce qui fait une différence dans l'apparence finale :

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
1
John Korchok 10 févr. 2020 à 15:40