Te recomendamos que pruebes esta resolución en un entorno controlado antes de enviarlo a producción, un saludo.
Solución:
Tu sentimiento es bastante correcto.
Insert > QuickParts > Field > FileName
es el camino a seguir, pero como puede ver en la siguiente captura de pantalla, no tiene la opción de activar o desactivar la extensión del archivo.
Mostrar o no mostrar (estilo de Shakespeare) la extensión depende únicamente de la configuración del Explorador de Windows para mostrar u ocultar las extensiones de archivo conocidas. Entonces, o cambias esa configuración o necesitas algún código.
Una Macro muy simple sería la siguiente:
Sub InsertCurrentFileName()
Selection.InsertBefore Text:=Left(ActiveDocument.Name, Len(ActiveDocument.Name) - 4)
End Sub
Lo que hace es simplemente eliminar los últimos 4 caracteres del “Nombre de archivo string”por ejemplo, “.doc”: si guarda un “.docx”, el “.” se conservará. Además, esta macro se ejecutará una vez y deberá ejecutarla nuevamente cuando cambie el nombre del archivo.
¿Tal vez podría explicar un poco más lo que quiere lograr con tener el nombre del archivo en el encabezado del documento? ¿Está tratando de usar el nombre de archivo en el encabezado del documento para establecer alguna propiedad de PDF durante la conversión? ¿Por qué no utilizar el título del documento? ¿Necesita el nombre de archivo original en el PDF más adelante? ¿Por qué?
Dos páginas más para ayudarte con tu problema (ambas basadas en Macros…):
- insertar nombre de archivo sin extensión .doc usando campos?
- Insertar un nombre de archivo sin una extensión
agregar [Title] En vez de nombre del archivo
y tal vez agregar algunos de los Otros Propiedades del documento listado
De hecho, no existe la opción “solo nombre base” para el campo Nombre de archivo.
Largo plazo: solicitud de función
A largo plazo, realicé una solicitud de función con Microsoft en: https://office365.uservoice.com/forums/264636-general/suggestions/13860672-for-word-create-a-basename-only-field-option -por
Los invito a usted y a otras personas que visitan esta publicación a votar esa sugerencia.
Soluciones a corto plazo
Macro (código VBA)
Escribiendo un macrocomo ha sugerido @DennisG, es probablemente el trabajo más conveniente.
Propiedad personalizada
Pero es posible que desee evitar asociar cualquier macro con su documento de Word para evitar problemas de seguridad (por ejemplo, si distribuye su documento). Entonces, otra solución es crear una propiedad personalizada FileBaseName
con un valor codificado “MyDocumentBaseName”:
Cree la propiedad personalizada FileBaseName y asígnele su valor:
- Abra un documento en blanco en MS Word.
- Guárdelo como “MyTempReport.docx”.
- En el menú de MS Word con MyTempReport.docx abierto > Archivo [tab] > Información > Propiedades: haga clic en > Propiedades avanzadas… > Personalizado [tab] …
- Escriba “Nombre”: “FileBaseName”; “Valor”: “MiInforme Temporal”.
Inserte la propiedad del documento personalizado, FileBaseName
en su documento:
- Menú MS Word > Insertar [tab] > Texto [group] > Piezas rápidas > Campo…
- En “Nombres de campo”, seleccione “DocProperty”.
- Desde “Propiedades de campo” > “Propiedad”: seleccione “Nombre de base de archivo” > Aceptar.
Ahora debería tener “MyTempReport” insertado como un campo en su documento.
Limitaciones:
- Si cambia el nombre de su archivo este no ser reflejado en tu
FileBaseName
campo. En su lugar, tendrá que cambiar manualmente elFileBaseName
propiedad de Propiedades Avanzadas… (como arriba). - Tendrá que crear esta propiedad personalizada en cada documento en particular en el que la desee.
Reseñas y valoraciones
Recuerda algo, que tienes la opción de decir si te fue útil.