Estoy tratando de agregar un bloque de construcción personalizado con el clic de un botón en MS word 10. A continuación, se encuentra el código adjunto a mi botón activeX.
Private Sub CommandButton1_Click()
Dim objTemplate As Template
Dim objBB As BuildingBlock
' Set the template to store the building block
Set objTemplate = ActiveDocument.AttachedTemplate
' Access the building block through the type and category
Set objBB = objTemplate.BuildingBlockTypes(wdTypeCustom5) _
.Categories("General").BuildingBlocks("Experience")
' Insert the building block into the document replacing any selected text.
objBB.Insert Selection.Range
End Sub
Mi problema es que, al invocar este código con el clic de un botón, el botón se convierte en el "Rango de selección" y, por lo tanto, se reemplaza. Busqué por todos lados códigos alternativos que mencionen diferentes especificaciones de "dónde" y no encontré nada.
Solo encontré dos enlaces (no puedo encontrar las URL en mi historial ahora mismo, se actualizará en breve)
Mencionó "Párrafos (1)" en lugar de "Selección.Rango", pero esta es una ubicación absoluta, aunque necesitaría algo relativo (Antes del botón)
Usando el método InsertBefore que supongo que se aplica solo al texto (se usó para insertar texto en el ejemplo) como cuando lo probé para bloques de construcción no funcionó
P.S Soy relativamente nuevo en VBA
fuente