Automatizar la introducción de fechas con VBA en un documento de Word

Articulos tematica Microsoft

El uso de VBA agiliza la introducción de fechas en el futuro o el pasado en un documento de Microsoft Word. He aquí cómo usarlo

El campo FECHA de Word no es flexible, por lo que cuando necesita más de lo que proporciona FECHA, la ruta de Excel es una buena opción. Sin embargo, si solo necesita sumar o restar un número específico de días, puede usar un procedimiento VBA en su lugar. En este artículo, le mostraré cómo usar VBA para insertar fechas estáticas en un número específico de días en el futuro o en el pasado.

Estoy usando Microsoft 365 en un sistema Windows 10 de 64 bits, pero puede usar versiones anteriores. Para su comodidad, puede descargar los archivos de demostración .docm, .doc y .cls . Los procedimientos de VBA no son compatibles con Microsoft Word Online.

Acerca del campo FECHA de Word

El campo FECHA de Word hace exactamente lo que podría esperar: devuelve la fecha actual. A diferencia de Excel, que admite varias funciones de fecha, FECHA devuelve solo la fecha actual. Si intenta encontrar una expresión que use FECHA, lo más probable es que falle. Se puede hacer, pero es tan difícil que ni siquiera los expertos lo recomiendan.

El campo FECHA utiliza la siguiente sintaxis:

{ FECHA [\ @ "formato"] [Cambios] }

A continuación, se ofrece una explicación de cada uno:

  • \ @ "formato" : especifica un formato de fecha diferente al formato predeterminado. Si selecciona un formato en el cuadro de diálogo Campo, Word inserta un modificador de formato correspondiente. Para usar un formato que no aparece en el cuadro de diálogo Campo, haga clic en el botón Códigos de campo y escriba el modificador de formato directamente en el cuadro Códigos de campo.
  • \ l : inserta la fecha con el último formato que seleccionó en el cuadro de diálogo Fecha y hora.
  • \ h : especifica el uso del calendario Hijri / Lunar.
  • \ s : especifica el uso del calendario Saka Era.

Es poco probable que la mayoría de nosotros necesitemos alguna vez los dos últimos, así que revisemos un ejemplo de los dos primeros. Si la fecha actual es el 14 de septiembre de 2021,

{ FECHA \ @ "dddd, MMMM d AAAA" }

Si trabaja con Excel o incluso con Access, la cadena de formato ("dddd, MMMM d AAAA") probablemente le resulte familiar. Debido a esta cadena, esta es una de las ocasiones en las que ingresar al campo a través de la interfaz es más fácil que cualquier otro método porque los formatos se enumerarán para usted y todo lo que debe hacer es hacer clic en uno. No tendrá que memorizar los muchos códigos de cadena.

Use el campo FECHA de Word en cualquier momento que desee insertar una fecha rápida usando el atajo Shift + Alt + D. Al hacerlo, ingresa un campo FECHA, que se actualizará. Cuando necesite más, considere usar VBA

Cómo ingresar y ejecutar procedimientos de VBA

Antes de continuar, deberá saber cómo ingresar a los procedimientos de VBA. Si está familiarizado con el trabajo con código VBA, puede omitir esta sección. Aunque utilizo el término procedimiento, muchas fuentes, incluida Microsoft, utilizan el término macro y subprocedimiento indistintamente.

Para ingresar a los procedimientos de VBA en este artículo, presione Alt + F11 para abrir el Editor de Visual Basic. En el Explorador de proyectos a la izquierda, seleccione ThisWorkbook para que pueda ejecutar el procedimiento en cualquier hoja. Puede ingresar el código manualmente en ThisWorkbook o importar el archivo .cls descargable. Los procedimientos se encuentran en los archivos .docm, .doc y .cls descargables.

Si ingresa el código manualmente, no lo pegue desde esta página web. En su lugar, copie el código en un editor de texto y luego péguelo en el módulo ThisWorkbook. Si lo hace, se eliminarán los caracteres web fantasma que, de otro modo, podrían causar errores.

Si está utilizando una versión de cinta, asegúrese de guardar el libro de trabajo como un archivo habilitado para macros. Si está trabajando en la versión de menú, puede omitir este paso.

Para ejecutar una macro desde la interfaz, haga lo siguiente:

  • Haga clic en la pestaña Desarrolladores.
  • Haga clic en Macros en el grupo Código.
  • En el cuadro de diálogo resultante, elija el procedimiento y haga clic en Ejecutar.

Ahora echemos un vistazo a un subprocedimiento que devuelve la fecha actual.

Acerca de la función DATE () de VBA

Cuando necesite más que una simple fecha, considere usar un procedimiento de VBA. Tenga en cuenta que en VBA, hay una función DATE () y un tipo de datos Date; estamos revisando ambos en este punto, y la siguiente función imprime la fecha actual en la ventana Inmediato (presione Ctrl + G para mostrar esta ventana en el Editor de Visual Basic):

Función DateTest ()

Imprime la fecha de hoy.

'Llame en cualquier momento que necesite la fecha actual.

Dim dFecha como fecha

DateTest = Fecha

Debug.Print DateTest

Función final

dDate es una variable de fecha y la fecha en la siguiente línea hace referencia a la fecha del sistema. Puede leer este último en cualquier momento utilizando Date. DateTest () no restablece la fecha del sistema, solo la lee y luego la muestra en la ventana inmediata. Trate de no dejar que las mayúsculas y minúsculas o la falta de caracteres () lo confundan. Ahora que conoce la diferencia entre hacer referencia a la fecha del sistema usando Date y definir una variable de fecha usando Date (me siento mareado al escribir eso), sigamos adelante e insertemos fechas pasadas y futuras en un documento de Word.

Calcular fechas pasadas y futuras

Puede calcular fechas pasadas y futuras utilizando el campo FECHA si tiene la habilidad especializada . La mayoría de nosotros no, e incluso aquellos que lo hacen, luchamos para que la expresión del campo DATE sea correcta. La mayoría recurre a VBA porque es mucho más fácil y para casi todos en la Tierra, más rápido.

Los listados A y B son subprocedimientos simples que insertan la fecha 30 días en el futuro y el pasado, respectivamente, en la posición del cursor. La Figura A muestra los resultados para ambos cuando la fecha actual es el 17 de septiembre de 2021.

Sub Date30Future ()

'Insertar fecha usando formato específico 30 días

'en el futuro de la fecha actual.

Selection.TypeText _

Texto: = Formato (Fecha + 30, "mmmm d, aaaa")

End Sub

Sub Date30Past ()

'Insertar fecha usando formato específico 30 días

'en el pasado de la fecha actual.

Selection.TypeText _

Texto: = Formato (Fecha - 30, "mmmm d, aaaa")

End Sub

wordcalculatedate-a.jpg

Utilice los procedimientos de VBA para ingresar fechas de 30 días pasados ​​y futuros en un documento de Word.

Los listados anteriores son útiles, en la medida de lo posible. Puede modificar ingresando un valor que no sea 30 o -30 en el código, pero aún están limitados a devolver solo dos fechas. Al agregar un InputBox (), puede permitir que el usuario especifique el número de días.

Cómo calcular el número de días transcurridos

No confunda la palabra pasada en el encabezado con pasado. Al usar el Listado C, los usuarios pasan un valor entero, ya sea positivo o negativo (futuro o pasado, respectivamente) pasando ese valor a través de un cuadro de entrada.

Sub DateInput ()

'Permitir al usuario ingresar el número de días

'para sumar o restar de la fecha actual.

Días tenues como entero

days = InputBox ("Ingrese un número positivo para agregar" _

& "o un número negativo para restar", "Ingrese la fecha").

Selection.TypeText _

Texto: = Formato (fecha + días, "mmmm d, aaaa")

End Sub

Cuando se ejecuta dateinput (), VBA mostrará el espectáculo cuadro de entrada en la figura B . Ingrese un número entero positivo para ver una fecha en el futuro. Ingrese un número entero negativo para ver una fecha del pasado. La Figura C muestra el resultado de ingresar 5 y -5 el 17 de septiembre de 2021.

Fecha actualización el 2021-09-22. Fecha publicación el 2021-09-22. Categoría: whatsapp Autor: Oscar olg Mapa del sitio Fuente: techrepublic