Aquí hay un código:
Code:
Sub MacroDinicio()
' NOTA: Cada usario debe poner la plantilla aquí:
' C:\Users\%username%\AppData\Roaming\Microsoft\Templates\
'On Error Resume Next
' No es necesario para preguntar al usuario la ruta plantilla.
' Estas dos líneas de código obtiene la plantilla del documento:
Dim myTemplate As Template
Set myTemplate = Application.Templates(ActiveDocument.AttachedTemplate.FullName)
' En el macro, tienes que incluir la siguiente línea de código antes de cada
' línea como las líneas de abajo ("Application.Templates...). Es necesario
' porque la plantilla no es en el archivo STARTUP o plantilla Normal. El código
' hace que todos los bloques de creacion disponibles mientras el documento está abierto.
' Cuando el usuario inserta una bloque de creación para el primer tiempo,
' esta línea los cargará todos ellos.
' Si no sabes cual bloque de creación se insertará primero, pon el código
' antes de todas las líneas que el ejemplo abajo, para "INICIO & EXPOSICION...".
' Pero, si estás absolutamente seguro que el usuario siempre insertará un bloque
' específico primero, entonces puedes ponerlo antes de solamente el código para ese
' bloque.
Application.Templates.LoadBuildingBlocks
' Cambia cada línea en el macro que incluye "Application.Templates(..." a
' "Application.Templates(myTemplate.FullName)... Por ejemplo:
Application.Templates(myTemplate.FullName).BuildingBlockEntries("INICIO Y EXPOSICION DE HECHOS"). _
Insert Where:=Selection.Range, RichText:=True
End Sub
Mas notas:
- No pongas los bloques de creación en BuildingBlocks.dotx o Normal.dotx, solamente en la plantilla que creaste.
- No entiendo por qué sus usuarios están creando documentos habilitados para macros. Si los macros estan en la plantilla, no es necesario tenerlos en los documentos.