VBA – Obter a Data de Hoje (Data Atual)
In this Article
Este tutorial demonstrará como obter a data de hoje no VBA.
Há duas maneiras de obter a data de hoje no código VBA: usando a função VBA Date() ou as funções VBA Now().
Função Date()
A função Date() retorna a data de hoje. No exemplo abaixo, atribuímos a data de hoje a uma variável e, em seguida, exibimos a data na janela imediata do VBE Editor.
Dim dtToday as Date
dtToday = Date()
Debug.Print dtToday
Como alternativa, podemos exibir a data em uma caixa de mensagem.
Sub TestarData()
Dim dtToday as Date
dtToday = Date()
Msgbox "A data de hoje é " & dtToday
End Sub
Função Now()
A função Now() funciona da mesma forma que a função date, mas inclui a hora.
Sub TestarData()
Dim dtToday As Date
dtToday = Now()
MsgBox "A data de hoje é " & dtToday
End Sub
Formatação de Datas com o VBA
Nas funções Date() e Now(), a data é formatada em um estilo padrão, conforme determinado pelas configurações do nosso computador. Podemos personalizar essa formatação usando a função Format do VBA. Como a função Format retornará uma string, precisamos declarar uma variável STRING em vez de uma variável DATE.
Sub TestarDate()
Dim dtToday As String
dtToday = Format (Date, "dd mmmm yyyy")
MsgBox "A data de hoje é " & dtToday
End Sub
Também podemos formatar a função Now() para incluir a parte da hora em um formato personalizado.
Sub FormatarNow()
Dim dtToday As String
dtToday = Format(Now(), "dd mmmm yy hh:mm:ss am/pm")
MsgBox dtToday
End Sub
Comparação de Duas Datas com o VBA
Também podemos usar a função Date para comparar a data de hoje com uma data diferente – talvez queiramos calcular quantos dias faltam para um evento! Podemos fazer isso usando a função DateDiff() do VBA, que retornará um número. Portanto, podemos declarar uma variável INTEGER para armazenar o valor retornado.
Sub TestarDateDiff()
Dim dtToday As Date
Dim dtSomeDay As Date
Dim iDays As Integer
dtToday = Date
dtSomeDay = "05/06/2021"
iDays = DateDiff("d", dtToday, dtSomeDay)
MsgBox "Existem " & iDays & " dias entre as duas datas."
End Sub
Como as datas são armazenadas como números, também poderíamos subtrair a segunda data da primeira para obter a mesma resposta.
iDays = dtToday - dtSomeDay