View Single Post
 
Old 06-26-2013, 07:27 AM
Charles Kenyon Charles Kenyon is offline Windows Vista Office 2010 32bit
Moderator
 
Join Date: Mar 2012
Location: Sun Prairie, Wisconsin
Posts: 9,533
Charles Kenyon has a brilliant futureCharles Kenyon has a brilliant futureCharles Kenyon has a brilliant futureCharles Kenyon has a brilliant futureCharles Kenyon has a brilliant futureCharles Kenyon has a brilliant futureCharles Kenyon has a brilliant futureCharles Kenyon has a brilliant futureCharles Kenyon has a brilliant futureCharles Kenyon has a brilliant futureCharles Kenyon has a brilliant future
Default

Here is code I use in a UserForm with four checkboxes. It is almost ten years old but it works in Word 2003-2013.

Code:
Option Explicit

Private Sub cmdCancel_Click()
    Me.Hide
    Unload Me
End Sub

Private Sub cmdHelp_Click()
    frmHelp.Show
End Sub

Private Sub cmdOK_Click()
    If chkAlcohol.Value = True Then
        MsgBox "Alcohol checked"
    End If
    If chkDNA.Value = True Then
        UpdateBookmark "DxDNAdemand", "DxDNAdemand"
        UpdateBookmark "DxDNAdemanda", "DxDNAdemand"
        UpdateBookmark "DxDNAnotice", "DxDNAnotice"
        Else
        ClearBookmark "DxDNAdemand"
        ClearBookmark "DxDNAdemanda"
        ClearBookmark "DxDNAnotice"
    End If
    If chkOWI.Value = True Then
        UpdateBookmark "DxDWI1a", "DxDWI1a"
        UpdateBookmark "DxDWI1b", "DxDWI1b"
        UpdateBookmark "DxDWI1c", "DxDWI1c"
        UpdateBookmark "DxDWI1d", "DxDWI1d"
        UpdateBookmark "DxDWI2", "DxDWI2"
        UpdateBookmark "DxDWI3", "DxDWI3"
        Else
        ClearBookmark "DxDWI1a"
        ClearBookmark "DxDWI1b"
        ClearBookmark "DxDWI1c"
        ClearBookmark "DxDWI1d"
        ClearBookmark "DxDWI2"
        ClearBookmark "DxDWI3"
    End If
    If chkSA.Value = True Then
        UpdateBookmark "DxSAkit", "DxSAkit"
        UpdateBookmark "DxSAprotocol", "DxSAprotocol"
        UpdateBookmark "DxSAprotocola", "DxSAprotocol"
        UpdateBookmark "DxSAprotocolb", "DxSAprotocol"
        UpdateBookmark "DxSAprotocolc", "DxSAprotocol"
        Else
        ClearBookmark "DxSAkit"
        ClearBookmark "DxSAprotocol"
        ClearBookmark "DxSAprotocola"
        ClearBookmark "DxSAprotocolb"
        ClearBookmark "DxSAprotocolc"
    End If
    cmdCancel_Click
End Sub

Private Sub UserForm_Click()

End Sub

Private Sub UpdateBookmark(ByVal strBookmarkName As String, _
    ByVal strAutoTextName As String)
'   from http://word.mvps.org/FAQs/MacrosVBA/InsertingTextAtBookmark.htm
'   modified to use AutoText by Charles Kenyon on 6 Feb 2004
'   modified to use AutoText.Insert with help from Peter Hewitt on 25 Feb 2004
'
    Dim rngLocation As Word.Range
    Dim tplAttached As Word.Template
'
    Set tplAttached = ActiveDocument.AttachedTemplate
    Set rngLocation = ActiveDocument.Bookmarks(strBookmarkName).Range
    Set rngLocation = tplAttached. _
        AutoTextEntries(strAutoTextName).Insert(rngLocation, True)
    ActiveDocument.Bookmarks.Add strBookmarkName, rngLocation
    tplAttached.Saved = True
End Sub

Private Sub ClearBookmark(BookmarkToUpdate As String)
    Dim BMRange As Range
    Set BMRange = ActiveDocument.Bookmarks(BookmarkToUpdate).Range
    BMRange.Text = ""
    ActiveDocument.Bookmarks.Add BookmarkToUpdate, BMRange
End Sub
Reply With Quote