Microsoft Excel Webinar

Results 1 to 4 of 4

Thread: Solved: How to check if a Word Style exists

  1. #1

    Solved: How to check if a Word Style exists

    Hi, I am trying to find if a style exists within the template in VBA so if it did exist I could call another sub.

    I can do it this way:
    VB:
    Selection.Find.Style = ActiveDocument.Styles("_AG Green Highlight") 
    Selection.Find.Execute 
    If Selection.Find.Found = True Then 
        If ActiveDocument.Bookmarks.Exists("PerfectPitch_Merged") = False Then 
            Call PerfectPitchLoad 
        End If 
    End If 
    
    
    Formatting tags added by mark007
    However, I know the style always exists in the template of the document, but isn't necessarily in use, therefore I need code to check if it exists, rather than if it is used.

    Hope this makes sense and someone can help.

    Mark

  2. #2
    VBAX Master TonyJollans's Avatar
    Joined
    May 2004
    Location
    Norfolk, England
    Posts
    2,290
    Location
    If you know it always exists why do you need code to see if it exists?

    VB:
     
    Sub Test() 
        MsgBox StyleExists("_AG Green Highlight") 
    End Sub 
     
    Function StyleExists(StyleName As String) As Boolean 
        Dim MyStyle As Word.Style 
        On Error Resume Next 
         ' maybe this ...
        Set MyStyle = ActiveDocument.Styles(StyleName) 
         ' or maybe this ...
         ' Set MyStyle = ActiveDocument.AttachedTemplate.Styles(StyleName)
        StyleExists = Not MyStyle Is Nothing 
    End Function 
    
    
    Formatting tags added by mark007
    Enjoy,
    Tony

    ---------------------------------------------------------------
    Give a man a fish and he'll eat for a day.
    Teach him how to fish and he'll sit in a boat and drink beer all day.

    I'm (slowly) building my own site: www.WordArticles.com

  3. #3
    thanks for your help I will give them a go.

    I need the code because word is opened from an external website in this instance and therefore if it exists I want to run some code. However, when a user runs word normally, I don't always want to run the code if that makes sense.

    Thanks, Mark

  4. #4

    How to check if something exists: really good start

    Many thanks, Tony. When I share templates, sometimes I reference objects that don;t exist (yet) on their systems. This is a great base for checking the existence of a lot of vba objects, e.g., ListCaptions, then if the do not exist, adding them: ' So this line calls the function that sets things straight If CaptionLabelExists("AppTable") = False Then CaptionLabels.Add ("AppTable") End If Function CaptionLabelExists(CaptionLabelName As String) As Boolean ' This function checks to see if a referenced CaptionLabel exists ' and if it does not exist, it creates it Dim MyCL As CaptionLabel On Error Resume Next Set MyCL = CaptionLabels(StyleName) CaptionLabelExists = Not MyCL Is Nothing End Function -Bill
    Quote Originally Posted by markh1182 View Post
    thanks for your help I will give them a go. I need the code because word is opened from an external website in this instance and therefore if it exists I want to run some code. However, when a user runs word normally, I don't always want to run the code if that makes sense. Thanks, Mark

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •