Funções de dados em VBA

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on May 2, 2023

Este tutorial abordará as diferentes funções de data incorporadas no VBA.

Função VBA Date

Pode utilizar a função Date para devolver a data atual.

A sintaxe da função Date é Date(). Ela não tem argumentos.

O código seguinte mostra-lhe como utilizar a função Date:

Sub UsandoFuncaoDate()

Dim aData As Date
aData = Date()

Debug.Print aData

End Sub

O resultado mostrado na Janela Imediata é:

saida funcao date

Função VBA Now

Pode utilizar a função Now para devolver a data e a hora atuais.

A sintaxe da função Now é Now(). Ela não tem argumentos.

O código a seguir mostra como usar a função Now:

Sub UsandoFuncaoNow()

Dim aData As Date
aData = Now()

Debug.Print aData

End Sub

O resultado é:

Função VBA Time

Pode utilizar a função Time para devolver a hora atual.

A sintaxe da função Time é Time(). Ela não tem argumentos.

O código seguinte mostra como utilizar a função Time:

Sub UsandoFuncaoTime()

Dim aData As Date
aData = Time()

Debug.Print aData

End Sub

O resultado é:

saida funcao time

Função VBA DateAdd

É possível utilizar a função DateAdd para adicionar um intervalo de data/hora a uma data ou hora, e a função devolverá a data/hora resultante.

A sintaxe da função DateAdd é:

DateAdd(Intervalo, Número, Data) onde:

  • Intervalo – Uma string que especifica o tipo de intervalo a ser usado. O intervalo pode ser um dos seguintes valores:

“d” – dia
“ww” – semana
“w” – dia da semana
“m” – mês
“q” – trimestre
“yyyy” – ano
“y” – dia do ano
“h” – hora
“n” – minuto
“s” – segundo

  • Número – O número de intervalos que pretende adicionar à data/hora original.
  • Data – A data/hora original.

Nota: Quando utilizar datas no seu código, é necessário colocá-la entre # ou aspas.

O código seguinte mostra como utilizar a função DateAdd:

Sub UsandoFuncaoDateAdd()

Dim DataPosterior As Date

DataPosterior = DateAdd("m", 10, "11/12/2019")

Debug.Print DataPosterior

End Sub

O resultado é:

saida funcao dateadd vba

Função VBA DateDiff

Você pode utilizar a função DateDiff para obter a diferença entre duas datas, com base num intervalo de tempo especificado.

A sintaxe da função DateDiff é:

DateDiff(Intervalo, Data1, Data2, [PrimeiroDiaDaSemana], [PrimeiraSemanaDoAno]) onde:

  • Intervalo – Uma string que especifica o tipo de intervalo a ser usado. O intervalo pode ser um dos seguintes valores:

“d” – dia
“ww” – semana
“w” – dia da semana
“m” – mês
“q” – trimestre
“yyyy” – ano
“y” – dia do ano
“h” – hora
“n” – minuto
“s” – segundo

  • Data1 – Um valor de data que representa a data anterior.
  • Date2 – Um valor de data que representa a data posterior.
  • PrimeiroDiaDaSemana (Opcional) – Uma constante que especifica o dia da semana que a função deve usar como o primeiro dia da semana. Se estiver em branco, o domingo é utilizado como o primeiro dia da semana. PrimeiroDiaDaSemana pode ser um dos seguintes valores:

-vbSunday – utiliza o domingo como o primeiro dia da semana.
-vbMonday – utiliza a segunda-feira como o primeiro dia da semana.
-vbTuesday – utiliza a terça-feira como o primeiro dia da semana.
-vbWednesday – utiliza quarta-feira como o primeiro dia da semana.
-vbThursday – utiliza quinta-feira como o primeiro dia da semana.
-vbFriday – utiliza sexta-feira como o primeiro dia da semana.
-vbSaturday – utiliza Sábado como o primeiro dia da semana.
-vbUseSystemDayOfTheWeek – utiliza o primeiro dia da semana que é especificado pelas definições do seu sistema.

  • PrimeiraSemanaDoAno (Opcional) – Uma constante que especifica a primeira semana do ano. Se estiver em branco, a semana de 1 de Janeiro é utilizada como a primeira semana do ano. Firstweekofyear pode ser um dos seguintes valores:

-vbFirstJan1 – utiliza a semana que contém o dia 1 de Janeiro.
-vbFirstFourDays – utiliza a primeira semana que contém pelo menos quatro dias no novo ano.
-vbFirstFullWeek – utiliza a primeira semana completa do ano.
-vbSystem – utiliza a primeira semana do ano conforme especificado pelas definições do sistema.

O código a seguir mostra como usar a função DateDiff:

Sub UsandoFuncaoDateDiff()
 
Dim aDiferencaEntreDuasDatas As Long
 
aDiferencaEntreDuasDatas = DateDiff("q", "11/11/2010", "10/12/2012")
 
Debug.Print aDiferencaEntreDuasDatas
 
End Sub

O resultado é:

saida funcao datediff

Função VBA DatePart

Pode utilizar a função DatePart para devolver uma parte (dia, semana, trimestre, mês, etc.) de uma determinada data.

A sintaxe da função DatePart é:

DatePart(Intervalo, Data,[PrimeiroDiaDaSemana], [PrimeiraSemanaDoAno]) onde:

  • Intervalo – Uma cadeia de caracteres que especifica a parte da data a ser retornada. O intervalo pode ser um dos seguintes valores:

“d” – dia
“ww” – semana
“w” – dia da semana
“m” – mês
“q” – trimestre
“yyyy” – ano
“y” – dia do ano
“h” – hora
“n” – minuto
“s” – segundo

  • Data – A data da qual pretende que a função devolva uma parte.
  • PrimeiroDiaDaSemana (Opcional) – Uma constante que especifica o dia da semana que a função deve utilizar como o primeiro dia da semana. Se estiver em branco, o domingo é utilizado como o primeiro dia da semana. PrimeiroDiaDaSemana pode ser um dos seguintes valores:

-vbSunday – utiliza o domingo como o primeiro dia da semana.
-vbMonday – utiliza a segunda-feira como o primeiro dia da semana.
-vbTuesday – utiliza a terça-feira como o primeiro dia da semana.
-vbWednesday – utiliza quarta-feira como o primeiro dia da semana.
-vbThursday – utiliza quinta-feira como o primeiro dia da semana.
-vbFriday – utiliza sexta-feira como o primeiro dia da semana.
-vbSaturday – utiliza sábado como o primeiro dia da semana.
-vbUseSystemDayOfTheWeek – utiliza o primeiro dia da semana que é especificado pelas definições do seu sistema.

  • PrimeiraSemanaDoAno (Opcional) – Uma constante que especifica a primeira semana do ano. Se estiver em branco, a semana de 1 de Janeiro é utilizada como a primeira semana do ano. PrimeiraSemanaDoAno pode ser um dos seguintes valores:

-vbFirstJan1 – utiliza a semana que contém o dia 1 de Janeiro.
-vbFirstFourDays – utiliza a primeira semana que contém pelo menos quatro dias no novo ano.
-vbFirstFullWeek – utiliza a primeira semana completa do ano.
-vbSystem – utiliza a primeira semana do ano conforme especificado pelas definições do sistema.

O código a seguir mostra como usar a função DatePart:

Sub UsandoFuncaoDatePart()

Dim aParteDaData As Integer

aParteDaData = DatePart("yyyy", "12/12/2009")

Debug.Print aParteDaData

End Sub

O resultado é:

saida funcao datepart

Função VBA DateSerial

A função DateSerial do VBA recebe um ano, mês e dia de entrada e devolve uma data.

A sintaxe da função DateSerial é:

DateSerial(Ano, Mês, Dia) onde:

  • Ano – Um valor inteiro entre 100 e 9999 que representa o ano.
  • Mês – Um valor inteiro que representa o mês.
  • Dia – Um valor inteiro que representa o dia.

O código seguinte mostra-lhe como utilizar a função DateSerial:

Sub UsandoFuncaoDateSerial()

Dim aData As Date

aData = DateSerial(2010, 11, 10)

Debug.Print aData

End Sub

O resultado é:

saida funcao dateserial

Função VBA DateValue

A função DateValue devolve uma data quando lhe é dada uma representação em sequência de texto de uma data.

A sintaxe da função DateValue é:

DateValue(Data) onde:

  • Data – Uma cadeia de caracteres que representa a data.

O código seguinte mostra-lhe como utilizar a função DateValue:

Sub UsandoFuncaoDateValue()

Dim aData As Date

aData = DateValue("29, Outubro, 2010")

Debug.Print aData

End Sub

O resultado é:

saida funcao datevalue

 

Função VBA Day

É possível utilizar a função Day para devolver o dia de uma data de entrada.

A sintaxe da função Day é:

Day(Valor_da_data) onde:

  • Valor_da_data – A data da qual se pretende extrair o dia.

O código seguinte mostra-lhe como utilizar a função Day:

Sub UsandoFuncaoDay()

Dim oDia As Integer

oDia = Day("10/12/2010")

Debug.Print oDia

End Sub

O resultado é:

saida funcao day

Função VBA Hour

Pode utilizar a função Hour para devolver a hora de uma hora de entrada.

A sintaxe da função Hour é:

Hour(Hora) onde:

  • Hora – A hora da qual se pretende extrair a hora.

O código seguinte mostra-lhe como utilizar a função Hour:

Sub UsandoFuncaoHora()
 
Dim aHora As Integer

aHora = Hour("2:14:17 AM")

Debug.Print aHora

End Sub

O resultado é:

saida funcao hour

Função VBA Minute

É possível utilizar a função Minute para devolver o valor dos minutos de uma hora de entrada.

A sintaxe da função Minute é:

Minute(Hora) onde:

  • Hora – A hora da qual se deseja extrair o valor do minuto.

O código a seguir mostra como usar a função Minute:

Sub UsandoFuncaoMinute()
 
Dim oValorMinuto As Integer

oValorMinuto = Minute("2:14:17 AM")

Debug.Print oValorMinuto

End Sub

O resultado é:

saida funcao minute

Função VBA Second

Pode utilizar a função Second para devolver o valor dos segundos de um tempo de entrada.

A sintaxe da Função Second é a seguinte

Second(Hora) onde:

  • Hora – A hora da qual se pretende extrair o valor dos segundos.

O código a seguir mostra como usar a função Second:

Sub UsandoFuncaoSecond()
 
Dim oValorSegundos As Integer

oValorSegundos = Second("2:14:17 AM")

Debug.Print oValorSegundos

End Sub

O resultado é:

saida funcao second

Função VBA Month

É possível utilizar a função Month para devolver o mês de uma data de entrada.

A sintaxe da função Month é:

Month(Valor_data) onde:

  • Valor_data – A data da qual se pretende extrair o mês.

O código seguinte mostra como utilizar a função Month:

Sub UsandoFuncaoMonth()
 
Dim oMes As Integer

oMes = Month("18/11/2010")
Debug.Print oMes

End Sub

O resultado é:

saida funcao month

Função VBA MonthName

É possível utilizar a função MonthName para devolver o nome de um mês a partir de um número de mês fornecido.

A sintaxe da função MonthName é:

MonthName(Número_do_mês, [Abreviar]) onde:

  • Número_do_mês – Um valor inteiro entre 1 e 12.
  • Abreviar (Opcional) – Especifica se o nome do mês deve ser abreviado. Se estiver em branco, é utilizado o valor predefinido de Falso.
Sub UsandoFuncaoMonthName()
 
Dim oNomeDoMes As String

oNomeDoMes = MonthName(12, True)
Debug.Print oNomeDoMes

End Sub

O resultado é:

saida funcao monthname

Função VBA TimeSerial

A função TimeSerial recebe uma hora, um minuto e um segundo de entrada e devolve uma hora.

A sintaxe da função TimeSerial é:

TimeSerial(Hora, Minuto, Segundo) onde:

  • Hora – Um valor inteiro entre 0 e 23 que representa o valor da hora.
  • Minuto – Um valor inteiro entre 0 e 59 que representa o valor do minuto.
  • Segundo – Um valor inteiro entre 0 e 59 que representa o valor do segundo.

O código a seguir mostra como usar a função TimeSerial:

Sub UsandoFuncaoTimeSerial()

Dim aHora As Date
aHora = TimeSerial(1, 10, 15)

Debug.Print aHora

End Sub

O resultado é:

saida funcao timeserial

Função VBA TimeValue

A função TimeValue devolve uma Hora a partir de uma representação de sequência de caracteres de uma data ou hora.

A sintaxe da função TimeValue é:

TimeValue(Hora) onde:

  • Hora – Uma cadeia de caracteres que representa a hora.

O código seguinte mostra como utilizar a função TimeValue:

Sub UsandoFuncaoTimeValue()

Dim aHora As Date
aHora = TimeValue("22:10:17")

Debug.Print aHora

End Sub

O resultado é:

saida funcao timevalue

Função VBA Weekday

É possível utilizar a função Weekday para devolver um número inteiro de 1 a 7 que representa um dia da semana a partir de uma data de entrada.

A sintaxe da função Weekday é:

Weekday(Data, [PrimeiroDiaDaSemana]) onde:

  • Data – A data da qual você deseja extrair o valor do dia da semana.
  • PrimeiroDiaDaSemana (Opcional) – Uma constante que especifica o dia da semana que a função deve usar como o primeiro dia da semana. Se estiver em branco, o domingo é usado como o primeiro dia da semana. PrimeiroDiaDaSemana pode ser um dos seguintes valores:

-vbSunday – utiliza o domingo como o primeiro dia da semana.
-vbMonday – utiliza a segunda-feira como o primeiro dia da semana.
-vbTuesday – utiliza a terça-feira como o primeiro dia da semana.
-vbWednesday – utiliza quarta-feira como o primeiro dia da semana.
-vbThursday – utiliza quinta-feira como o primeiro dia da semana.
-vbFriday – utiliza sexta-feira como o primeiro dia da semana.
-vbSaturday – utiliza sábado como o primeiro dia da semana.
-vbUseSystemDayOfTheWeek – utiliza o primeiro dia da semana que é especificado pelas definições do seu sistema.

O código a seguir mostra como utilizar a Função Dia da Semana:

Sub UsandoFuncaoWeekday()

Dim oDiaDaSemana As Integer
oDiaDaSemana = Weekday("11/20/2019")
Debug.Print oDiaDaSemana

End Sub

O resultado é:

saida funcao weekday

Função VBA WeekdayName

É possível usar a função WeekdayName para retornar o nome de um dia da semana a partir de um número de dia da semana fornecido como entrada.

A sintaxe da função WeekdayName é:

WeekdayName(DiaDaSemana, [Abbreviar], [PrimeiroDiaDaSemana]) onde:

  • Dia da semana – Um valor inteiro entre 1 e 7.
  • Abbreviar (Opcional) – Especifica se o nome do dia da semana deve ser abreviado. Se estiver em branco, é utilizado o valor predefinido de Falso.
  • PrimeiroDiaDaSemana (Opcional) – Uma constante que especifica o dia da semana que a função deve utilizar como o primeiro dia da semana. Se estiver em branco, o domingo é utilizado como o primeiro dia da semana. PrimeiroDiaDaSemana pode ser um dos seguintes valores:

-vbSunday – utiliza o domingo como o primeiro dia da semana.
-vbMonday – utiliza a segunda-feira como o primeiro dia da semana.
-vbTuesday – utiliza a terça-feira como o primeiro dia da semana.
-vbWednesday – utiliza quarta-feira como o primeiro dia da semana.
-vbThursday – utiliza quinta-feira como o primeiro dia da semana.
-vbFriday – utiliza sexta-feira como o primeiro dia da semana.
-vbSaturday – utiliza sábado como o primeiro dia da semana.
-vbUseSystemDayOfTheWeek – utiliza o primeiro dia da semana que é especificado pelas definições do seu sistema.

Sub UsandoFuncaoWeekdayName()
 
Dim oNomeDoDia As String

oNomeDoDia = WeekdayName(4)
Debug.Print oNomeDoDia

End Sub

O resultado é:

saida funcao weekdayname

Função VBA Year

Pode utilizar a função Year para devolver o ano de uma data de entrada.

A sintaxe da função Year é a seguinte:

Year(Valor_data) onde:

  • Valor_data – A data da qual se pretende extrair o ano.

O código a seguir mostra como usar a função Year:

Sub UsandoFuncaoYear()

Dim oAno As Integer

oAno = Year("11/12/2010")
Debug.Print oAno

End Sub

O resultado é:

saida funcao year

Comparação de datas no VBA

É possível comparar datas usando os operadores >, < e = no VBA. O código a seguir mostra como comparar duas datas no VBA.

Sub ComparandoDatas()

Dim dataUm As Date
Dim dataDois As Date

dataUm = "10/10/2010"
dataDois = "11/11/2010"

If dataUm > dataDois Then
Debug.Print "dataUm é a data posterior"

ElseIf dataUm = dataDois Then
Debug.Print "As duas datas são iguais"

Else
Debug.Print "dataDois é a data posterior"

End If
End Sub

saida comparando datas

Para saber mais sobre como formatar datas como sequência de caracteres, consulte este tutorial.

vba-free-addin

Exemplos de Add-ins de Códigos VBA

Acesse facilmente todos os exemplos de código que se encontram em nosso site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(Nenhuma instalação necessária!)

Baixe de Graça

Retornar aos Exemplos de Códigos VBA