Microsoft Office Forums

Go Back   Microsoft Office Forums > >

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 11-08-2021, 08:14 AM
scienceguy scienceguy is offline How to determine if a Section number has a field code Windows 10 How to determine if a Section number has a field code Office 2016
Advanced Beginner
How to determine if a Section number has a field code
 
Join Date: Feb 2019
Posts: 46
scienceguy is on a distinguished road
Default How to determine if a Section number has a field code

Hello,



I'm trying to write a simple macro that determines if a Section number within the document's text has a field code. In other words, did the author use Microsoft Word's "cross-reference" feature. For example, "Please see Section 1 for more details." Does the "1" have a field code? If it does then turn the font blue. If it doesn't then turn the font red and add a comment.

I tried to mimic this application based off of a similar question, where I was looking for "Table n". However, it seems there is something unique about "Section n" vs "Table n". That solution is located here.

I believe the format is the word "Section" + non-breaking space + number. Therefore, my search string I have tried was:

aRng.Find.Text = "Section?[0-9.]{1,}"

However, this isn't working. It finds the "Section n" if Word's cross-reference isn't used, but it misses the properly formatted one that uses Word's cross reference feature. My full code is below. I am attaching a simple Word file to illustrate the issue. The first paragraph has "Section 2" and was properly formatted with Word's cross-reference feature. Therefore, the font for "2" should be turned blue. The third paragraph has "Section 1.1", which was not properly formatted. Therefore, its font should be turned red and a comment added.

Thank for you in advance for any assistance!

Roy


Code:
Sub myMacro()

    Dim aRng As Range
    
    Set aRng = ActiveDocument.Range
    With aRng.Find
        .ClearFormatting
        .Text = "Section^s[0-9.]{1,}"
        .MatchWildcards = True
        Do While .Execute  ' Loop until Word can no longer find the search string
            aRng.MoveStart Unit:=1, Count:=8                 'wdCharacter = 1
            aRng.MoveEnd Unit:=1, Count:=1
            If aRng.Fields.Count > 0 Then 'there is a field
                
                If InStr(1, aRng.Fields(1).Code.Text, "_Ref") > 0 And aRng.Font.Color <> vbBlue Then
                    aRng.Font.Color = vbBlue
                End If
                    
            Else
                aRng.Font.Color = vbRed
                ActiveDocument.Comments.Add Range:=aRng, Text:="Missing cross-reference field code"
            End If ''
            aRng.Collapse Direction:=0      'wdCollapseEnd
        Loop
        
    End With

End Sub
Attached Files
File Type: docm example code.docm (43.3 KB, 10 views)
Reply With Quote
 



Similar Threads
Thread Thread Starter Forum Replies Last Post
Field Code: Page number for current StyleRef Cosmo Word 4 11-15-2020 03:54 PM
Word 2016: How do I change a REF field code to display a reference to a Roman number as Arabic Peggy Sue Word 1 08-15-2017 09:50 PM
How to determine if a Section number has a field code VBA Code to search for field codes with certain text before the Field code and to change style welcometocandyland Word VBA 4 02-08-2017 06:53 PM
How to determine if a Section number has a field code Is there a way programmatically to determine the footnote number style, if other than arabic numbers gn4619 Word VBA 2 11-23-2015 11:00 PM
How to determine if a Section number has a field code Version number from document filename via field code palanski Word 3 10-15-2014 01:54 PM

Other Forums: Access Forums

All times are GMT -7. The time now is 07:25 AM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions Inc.
Search Engine Optimisation provided by DragonByte SEO (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
MSOfficeForums.com is not affiliated with Microsoft