View Single Post
 
Old 12-13-2016, 07:10 AM
gmayor's Avatar
gmayor gmayor is offline Windows 10 Office 2016
Expert
 
Join Date: Aug 2014
Posts: 4,138
gmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud ofgmayor has much to be proud of
Default

With a combobox content control, title it GetBlock (or whatever) then in the
Insert a bookmark where you want the building block to be placed (say bmBlock)
Add the following code to a new module in the document project

Code:
Public Sub BBToBM(strBMName As String, strTemplate As String, strBBName As String)
Option Explicit
'Graham Mayor - http://www.gmayor.com
Dim oRng As Range
Dim iLen1 As Integer, iLen2 As Integer
    With ActiveDocument
        iLen1 = Len(ActiveDocument.Range)
        On Error GoTo lbl_Exit
        Set oRng = .Bookmarks(strBMName).Range
        Application.Templates(strTemplate). _
                BuildingBlockEntries(strBBName).Insert _
                Where:=oRng, _
                RichText:=True
        iLen2 = Len(ActiveDocument.Range)
        oRng.End = oRng.End + (iLen2 - iLen1)
        oRng.Bookmarks.Add strBMName
    End With
lbl_Exit:
    Set oRng = Nothing
    Exit Sub
End Sub
In the ThisDocument module of the active document project add the following. Change the template from "D:\Word 2016 Templates\Normal.dotm" to the full path of wherever the building blocks (here BB Name 1 and BB Name 2) are stored.

Code:
Option Explicit

Private Sub Document_ContentControlOnExit(ByVal ContentControl As ContentControl, Cancel As Boolean)
    If ContentControl.Title = "GetBlock" Then
        Select Case ContentControl.Range.Text
            Case "Item1"
                BBtoBM "bmBlock", "D:\Word 2016 Templates\Normal.dotm", "BB Name 1"
            Case "Item2"
                BBtoBM "bmBlock", "D:\Word 2016 Templates\Normal.dotm", "BB Name 2"
        End Select
    End If
End Sub
Then if you have two entries in the combobox = Item1 and Item2, when you leave the combo box having made your selection, the appropriate building block is written to the bookmark.

Save as a macro enabled document (or template). Change any of the names and paths involved to fit what you have.
__________________
Graham Mayor - MS MVP (Word) (2002-2019)
Visit my web site for more programming tips and ready made processes www.gmayor.com
Reply With Quote