![]() |
#1
|
|||
|
|||
![]()
I'm writing a VBA macro that find any font color used except from black (RGB: 0,0,0) and blue.
If this macro finds a character that isn't black and blue in a paragraph, it shows the text of the paragraph with a message box. Code:
Option Explicit Sub test() Dim oParagraph As Paragraph, oLink As Hyperlink Dim char As Range Dim bFound As Boolean, i As Integer Dim strHex As String, strHex1 As String, strHex2 As String, strHex3 As String Dim strHex4 As String, strHex5 As String bFound = False For Each oParagraph In ActiveDocument.Paragraphs For Each char In oParagraph.Range.Characters strHex = Hex(char.Font.TextColor.RGB) strHex1 = Hex(char.Font.ColorIndex) strHex2 = Hex(char.Font.Color) strHex3 = Hex(char.Style.Font.Color) strHex4 = Hex(char.Style.Font.ColorIndex) strHex5 = Hex(char.Style.Font.TextColor.RGB) If char.Font.Color <> wdColorAutomatic And char.Font.Color <> wdColorBlack _ And char.Font.Color <> wdColorBlue Then bFound = True GoTo nt_lb End If Next char Next oParagraph nt_lb: If bFound = True Then MsgBox oParagraph.Range.Text End If End Sub When you execute this macro, this macro shows the pragraph including the hyperlink although the hyperlnk is blue and the remaining text is black in the paragraph. My macro checks the following properties for getting the correct font color:
But, any of the above properties don't return the correct color (blue). In the hyperlink text "This is a test link.", this macro finds that the first "T" character isn't black and blue. Also, I've attached a sample document. Please help me. |
#2
|
||||
|
||||
![]()
In your example char.Font.Color of the first character of the hyperlink will return 9999999 and not wdColorBlue. Add the test on that value to this line of code:
Code:
If char.Font.Color <> wdColorAutomatic And char.Font.Color <> wdColorBlack _ And char.Font.Color <> wdColorBlue Then |
#3
|
|||
|
|||
![]()
rollis13, thanks for your reply.
![]() I'd like to know why char.Font.Color returns 9999999 other than wdColorBlue. |
#4
|
||||
|
||||
![]()
Cross-posted at:
A VBA macro can't get the correct color of a hyperlink in MS Word - Stack Overflow A VBA macro can't get the correct color of a hyperlink in MS Word I can't get the correct color of a hyperlink (and who knows how many others). It seems you really don't care how many people waste their time working on essentially the same answer... For cross-posting etiquette, please read: Excelguru Help Site - A message to forum cross posters
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#5
|
||||
|
||||
![]()
Probably, since hyperlinks are 'fields' when you test the first character it picks the entire field returning '9999999 (hex 98967F) = undefined Font.Color' since the field has more colors.
Add these 2 lines and deactivate the other 2, run the macro and see the result in the "Immediate Window" Ctrl+G Code:
'... strHex2 = Hex(char.Font.Color) cnt = cnt + 1 '<- added Debug.Print cnt & " = " & char.Font.Color & " = " & strHex2 '<- added strHex3 = Hex(char.Style.Font.Color) '... 'bFound = True '<- deactivated 'GoTo nt_lb '<- deactivated '... |
![]() |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Macro to change an RGB table cell shading color to another RGB color | David Matthews | Word VBA | 4 | 05-29-2018 02:45 PM |
Correct Bookmark Hyperlink | Phil H | Word | 2 | 02-10-2016 12:55 PM |
![]() |
cyberpaper | Word | 2 | 01-03-2013 02:07 PM |
Word macro to email hyperlink | pooley343 | Word VBA | 0 | 07-20-2011 01:48 AM |
![]() |
Henry | Word | 1 | 07-05-2011 04:29 PM |