Função Eval

Você pode usar a função eval para avaliar uma expressão que resulte em uma cadeia de caracteres de texto ou um valor numérico.

Você pode construir uma cadeia de caracteres e passá-la para a função eval como se a cadeia fosse uma expressão real. A função eval avalia o expressão de cadeia de caracteres e retorna seu valor. Por exemplo, Eval("1 + 1") retorna 2.

Se você passar para a função eval uma cadeia de caracteres que contém o nome de uma função, a função eval retornará o valor de retorno da função. Por exemplo, Eval("Chr$(65)") retorna "A".

Sintaxe

Eval ( stringexpr )

O argumento stringexpr é uma expressão avaliada como uma cadeia de caracteres de texto alfanumérico. Por exemplo, stringexpr pode ser uma função que retorna uma cadeia de caracteres ou um valor numérico. Ou pode ser uma referência a um controle em um formulário. O argumento stringexpr deve ser avaliado como uma cadeia de caracteres ou um valor numérico; Não pode avaliar um objeto do Microsoft Access.

Observação: Exemplos a seguir demonstram o uso dessa função em um módulo do Visual Basic for Applications (VBA). Para obter mais informações sobre como trabalhar com o VBA, selecione referência do desenvolvedor na lista suspensa ao lado de Pesquisar e insira um ou mais termos na caixa de pesquisa.

Observação: Se você estiver passando o nome de uma função para a função eval , deverá incluir parênteses após o nome da função no argumento stringexpr . Por exemplo:

' ShowNames is user-defined function.
Debug.Print Eval("ShowNames()")

Debug.Print Eval("StrComp(""Joe"",""joe"", 1)")

Debug.Print Eval("Date()")

Comentários

Você pode usar a função eval em um controle calculado em um formulário ou relatório, ou em uma macro ou módulo. A função eval retorna uma variante que é uma cadeia de caracteres ou um tipo numérico.

O argumento stringexpr deve ser uma expressão armazenada em uma cadeia de caracteres. Se você passar para a função eval uma cadeia de caracteres que não contenha uma expressão numérica ou um nome de função, mas apenas uma cadeia de texto simples, ocorrerá uma erro em tempo de execução. Por exemplo, Eval("Smith") resulta em um erro.

Você pode usar a função eval para determinar o valor armazenado na propriedade Value de um controle. O exemplo a seguir passa uma cadeia de caracteres que contém uma referência completa a um controle para a função eval . Em seguida, ele exibe o valor atual do controle em uma caixa de diálogo.

Dim ctl As Control
Dim strCtl As String
Set ctl = Forms!Employees!LastName
strCtl = "Forms!Employees!LastName"
MsgBox ("The current value of " & ctl.Name & _
" is " & Eval(strCtl))

Você pode usar a função eval para acessar operadores de expressão que não estão disponíveis normalmente em um módulo do Visual Basic for Applications (VBA). Por exemplo, você não pode usar os operadores SQL entre... E ou diretamente no seu código, mas você pode usá-los em uma expressão passada para a função eval .

O exemplo a seguir determina se o valor de um controle RegiãoDeDestino em um formulário pedidos é uma das várias abreviações de estado especificadas. Se o campo contiver uma das abreviações, intState será true (– 1). Observe que você usa aspas simples (') para incluir uma cadeia de caracteres em outra cadeia de caracteres.

Dim intState As Integer
intState = Eval("Forms!Orders!ShipRegion In " _
& "('AK', 'CA', 'ID', 'WA', 'MT', 'NM', 'OR')")

Exemplos de consulta

Expressão

Resultados

SELECIONAR Eval ("15 + 3") como expr1 do ProductSales GROUP BY Eval ("15 + 3");

Avalia o valor da cadeia de caracteres e calcula o resultado. Resultado: 18.

Selecione Eval ("Date () + month (Date ())") AS NewDate FROM ProductSales Group by Eval ("Date () + month (Date ())");

Avalia o valor da cadeia de caracteres, identifica as funções e as executa. Resultado: data do sistema atual + mês atual, exibida na coluna "NewDate".

Exemplos do VBA

O exemplo a seguir pressupõe que você tenha uma série de funções do 50 definidas como a1, a2 e assim por diante. Este exemplo usa a função eval para chamar cada função da série.

Sub CallSeries()
Dim intI As Integer
For intI = 1 To 50
Eval("A" & intI & "()")
Next intI
End Sub

O próximo exemplo aciona um evento Click como se o usuário tivesse clicado em um botão em um formulário. Se o valor da propriedade onclick do botão começar com um sinal de igual (=), significando que é o nome de uma função, a função eval chamará a função, o que equivale a disparar o evento Click . Se o valor não começar com um sinal de igual, o valor deverá nomear uma macro. O método RunMacro do objeto DoCmd executa a macro nomeada.

Dim ctl As Control
Dim varTemp As Variant
Set ctl = Forms!Contacts!HelpButton
If (Left(ctl.OnClick, 1) = "=") Then
varTemp = Eval(Mid(ctl.OnClick,2))
Else
DoCmd.RunMacro ctl.OnClick
End If

Observação:  Esta página foi traduzida automaticamente e pode apresentar erros gramaticais ou imprecisões. Nosso objetivo é que este conteúdo seja útil para você. Você pode nos dizer se as informações foram úteis? Use o artigo em inglês como referência.​

Expanda suas habilidades no Office
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar no Office Insider

Essas informações foram úteis?

Obrigado por seus comentários!

Agradecemos pelos seus comentários! Parece que pode ser útil conectar você a um de nossos agentes de suporte do Office.

×