La forma más simple de obtener la hora en Excel es mediante la función =AHORA(). Esta función, que no lleva argumentos, da la fecha y la hora actuales. Según el formato adecuado, la celda puede mostrar la fecha, la hora o ambos.

El valor de la función se actualiza cada vez que se recalcula la hoja. Sea porque modificamos algún dato o porque oprimi­mos la tecla <F9>.

Si queremos asegurar la actualización automática, podemos usar una macro:

Sub Reloj()

Sheets(1).Cells(1, “A”) = Now

Application.OnTime Now + TimeSerial(0, 0, 2), “Reloj”

End Sub

Esta macro coloca el valor de la función Now (equivalente a AHORA) en la celda [A1] de la primera hoja del libro y, luego de una pausa de dos segundos, se ejecu­ta a sí misma.

La instrucción OnTime programa la ejecución de la macro que figura como segundo argumento (Reloj) para el momento indicado como primer argu­mento (el momento actual más dos segundos). Esta pausa de dos segundos permite seguir trabajando con la hoja de la forma normal.

El problema de esta macro es que pretende seguir reejecutándose de manera continua. Incluso, después de cerrar el archivo, lo cual puede generar complicaciones. Deberíamos prever alguna forma de finalizar la reejecución al cerrar el archivo. Podemos hacerlo con esta segunda macro:

Sub Auto_Close()

Application.OnTime Sheets(1).Cells(1, “A”) + _

TimeSerial(0, 0, 2), “Reloj”, , False

End Sub

Por tener el nombre especial Auto_ Close, esta macro se ejecuta automá­ticamente al cerrar el archivo que la contiene. La macro contiene la misma instrucción de la macro Reloj, pero con el argumento False al final. Esta instruc­ción cancela la continua reejecución de la macro Reloj.