[löst] Microsoft Word Macro / Visual Basic, if sats

Permalänk

[löst] Microsoft Word Macro / Visual Basic, if sats

Jag behöver hjälp med en if-sats

För att färglägga en markering med färg kör jag

Selection.Shading.BackgroundPatternColor = -687800525

för att återställa

Selection.Shading.BackgroundPatternColor = wdColorAutomatic

Vi kommer även behöva utläsa färgen, så att man kan utföra if-satsen; "om färgen är -687800525, ange wdColorAutomatic, annars -687800525"

Permalänk
Medlem

If((Selection.Shading.BackgroundPatternColor = -687800525), Selection.Shading.BackgroundPatternColor = wdColorAutomatic, Selection.Shading.BackgroundPatternColor = -687800525)

alternativt

If (Selection.Shading.BackgroundPatternColor = -687800525) Selection.Shading.BackgroundPatternColor = wdColorAutomatic, Else Selection.Shading.BackgroundPatternColor = -687800525) End If

Visa signatur

9950X3D - 3090 - 2x48GB 6000@30

Permalänk

Tack så mycket @celoz

Fick skriva om koden lite, då den orsakade felmeddelande. Kanske olika versioner av Visual Basic?
Jag fick även undersöka hur färgkoden skrivs i Word, det visade sig vara RGB integer (använde en colorpicker som tog fram koderna åt mig)

Så här blev det

Varianten i flera rader:

Sub HilightYellow() ' Toggle gul nyans If (Selection.Shading.BackgroundPatternColor = 13431551) Then Selection.Shading.BackgroundPatternColor = wdColorAutomatic Else Selection.Shading.BackgroundPatternColor = 13431551 End If End Sub

och varianten i en rad:

Sub HilightPink() ' Toggle rosa nyans för rubriker If Selection.Shading.BackgroundPatternColor = 14017787 Then Selection.Shading.BackgroundPatternColor = wdColorAutomatic Else Selection.Shading.BackgroundPatternColor = 14017787 End Sub