Entendendo as funções VBA e seus usos

A função executa um cálculo e retorna um único valor. A função soma adiciona a soma de um intervalo de valores. O mesmo vale para as funções utilizadas em suas expressões VBA: Cada função faz sua coisa e retorna um único valor.

As funções que você usa em VBA pode vir de três fontes:

  • Built-in funções fornecidas pelo VBA
  • funções de planilha fornecidos pelo Excel
  • As funções personalizadas que você (ou outra pessoa) escrever, usando VBA

VBA oferece inúmeras funções embutidas. Algumas destas funções recebem argumentos e outros não.

exemplos de função VBA

Aqui estão alguns exemplos de como usar funções de VBA no código. Observe o uso da função MsgBox para exibir um valor em uma caixa de mensagem. Sim, MsgBox é uma função VBA - um tanto incomum, mas uma função, no entanto. Esta função útil exibe uma mensagem em uma caixa de diálogo pop-up.

Exibindo a data do sistema

O primeiro exemplo usa a função Data do VBA para exibir a data atual do sistema em uma caixa de mensagem:

Sub VerData ()
MsgBox Data
End Sub

Observe que a função Data não usa um argumento. Ao contrário de funções de planilha, uma função VBA com nenhum argumento não requer um conjunto vazio de parênteses. Na verdade, se você fornecer um conjunto vazio de parênteses, o VBE irá removê-los.

Para obter a data ea hora do sistema, use a função Agora, em vez da função Data. Ou para obter apenas o tempo, use a função Time.

Encontrar um comprimento da corda

O procedimento a seguir usa a função VBA Len, que retorna o comprimento de uma string. A função Len tem um argumento: a corda. Quando você executa esse procedimento, a caixa de mensagem exibe 11 porque o argumento tem 11 caracteres.

Sub GetLength ()
Dim MyString As String
Dim StringLength As Integer
MyString = "Olá Mundo"
StringLength = Len (MyString)
MsgBox StringLength
End Sub

Excel também tem uma função, que você pode usar em seus fórmulas de planilha. A versão Excel ea função VBA funcionam da mesma forma.

Exibindo a parte inteira de um número

O procedimento a seguir usa a função Fix, que retorna o número inteiro parte de um valor - o valor sem dígitos decimais:

Sub GetIntegerPart ()
Dim MyValue As Double
Dim intValue As Integer
MyValue = 123.456
IntValue = Fix (MyValue)
MsgBox intValue
End Sub

Neste caso, a caixa de mensagem exibe 123.

VBA tem uma função semelhante chamada Int. A diferença entre Int e Fix é a forma como cada um lida com números negativos.

  • Int retorna o primeiro inteiro negativo que é menor ou igual ao argumento.
  • Fix retorna o primeiro inteiro negativo que é maior ou igual ao argumento.

Determinando um tamanho de arquivo

O seguinte procedimento Sub exibe o tamanho, em bytes, do arquivo executável Excel. Ele encontra esse valor usando a função FileLen.

Sub GetFileSize ()
Dim TheFile As String
TheFile = "c: MSOFFICE EXCEL EXCEL.EXE"
MsgBox FileLen (TheFile)
End Sub

Observe que esta rotina códigos rígidos o nome do arquivo (ou seja, ele afirma explicitamente o caminho). Geralmente, esta não é uma boa ideia. O arquivo pode não estar na unidade C, ou a pasta Excel pode ter um nome diferente. A declaração a seguir mostra uma abordagem melhor:

TheFile = Application.Path " EXCEL.EXE"

Path é uma propriedade do objeto Application. Ele simplesmente retorna o nome da pasta na qual o aplicativo (ou seja, Excel) está instalado (sem uma barra invertida).

Identificar o tipo de um objeto selecionado

O procedimento a seguir usa a função TypeName, que retorna o tipo do objeto selecionado (como string):

Sub ShowSelectionType ()
SelType Dim As String
SelType = TypeName (Selecção)
MsgBox SelType
End Sub

Isto pode ser um intervalo, uma ChartObject, uma caixa de texto, ou qualquer outro tipo de objecto que pode ser seleccionado.

A função TypeName é muito versátil. Você também pode usar esta função para determinar o tipo de dados de uma variável.

funções de VBA que fazem mais do que retornar um valor

Algumas funções de VBA vão acima e além da chamada do dever. Em vez de simplesmente retornar um valor, essas funções têm alguns efeitos colaterais úteis. A Tabela 1 apresenta-os.

Tabela 1: Funções com benefícios colaterais Úteis

Função

O que faz

MsgBox

Exibe uma caixa de diálogo à mão contendo uma mensagem e botões. A função retorna um código que identifica o botão que o usuário clica.

Caixa de entrada

Exibe uma caixa de diálogo simples que pede ao usuário para alguma entrada. A função retorna tudo o que o usuário digita na caixa de diálogo.

Concha

Executa outro programa. A função retorna o tarefa ID (Um identificador único) do outro programa (ou um erro se a função não pode iniciar outro programa).

funções Discovering VBA

Como você descobrir o que funciona VBA fornece? Boa pergunta. A melhor fonte é o sistema de ajuda do Visual Basic Excel. A Tabela 2 contém uma lista parcial de funções (menos algumas das funções mais especializadas ou obscuras).

Para detalhes completos sobre uma determinada função, digite o nome da função em um módulo VBA, mova o cursor em qualquer lugar do texto, e pressione F1.

Tabela 2: A maioria funções úteis do Built-in do VBA

Função

O que faz

Abs

Retorna o valor absoluto de um número

ordem

Retorna uma variante que contém uma matriz

Asc

Converte o primeiro caractere de uma string para o seu valor ASCII

Atn

Retorna o arco tangente de um número

Escolher

Retorna um valor a partir de uma lista de itens

Chr

Converte um valor de ANSI para uma string

Cos

O co-seno de um número

CurDir

Retorna o caminho atual

Encontro

Retorna a data atual do sistema

DateAdd

Devolve uma data para a qual um intervalo de tempo especificado foi

adicionados - por exemplo, um mês a partir de uma data específica

DateDiff

Retorna um inteiro que mostra o número de intervalos de tempo especificados entre duas datas, por exemplo, o número de meses entre agora e seu aniversário

PartData

Retorna um inteiro contendo a parte especificada de uma determinada

data - por exemplo, um dia de data do ano

DateSerial

Converte uma data para um número de série

DateValue

Converte uma string para uma data

Dia

Retorna o dia do mês a partir de um valor de data

dir

Retorna o nome de um arquivo ou diretório que corresponde a um padrão

Erl

Retorna o número da linha que causou um erro

Errar

Retorna o número de erro de uma condição de erro

Erro

Retorna a mensagem de erro que corresponde a um número de erro

Exp

Retorna a base do logaritmo natural (e) elevado a uma potência

FileLen

Retorna o número de bytes em um arquivo

Consertar

Retorna parte inteira de um número

Formato

Exibe uma expressão em um formato particular

ObterDefinição

Retorna um valor de registro do Windows

feitiço

Converte de decimal para hexadecimal

Hora

Retorna a parte horas de cada vez

Caixa de entrada

Exibe uma caixa para solicitar um usuário para entrada

InStr

Retorna a posição de uma cadeia dentro de outra cadeia

int

Retorna a parte inteira de um número

IPmt

Retorna o pagamento de juros de uma anuidade ou empréstimo

IsArray

Retorna True se uma variável é um array

IsDate

Retorna True se uma expressão é uma data

Está vazia

Retorna True se uma variável não foi inicializada

IsError

Retorna True se uma expressão é um valor de erro

Está desaparecido

Retorna True se um argumento opcional não foi passado para um procedimento

É nulo

Retorna True se uma expressão não contém dados válidos

IsNumeric

Retorna True se uma expressão pode ser avaliada como um número

IsObject

Retorna True se a expressão faz referência a um objeto de automação OLE

LBound

Retorna o menor subscrito para uma dimensão de um array

LCase

Retorna uma string convertidos em letras minúsculas

Esquerda

Retorna um número especificado de caracteres a partir da esquerda de uma string

Len

Retorna o número de caracteres em uma seqüência

Registro

Retorna o logaritmo natural de um número de base e

LTrim

Retorna uma cópia de uma corda, com quaisquer espaços à esquerda removidos

médio

Retorna um número especificado de caracteres de uma cadeia

Minuto

Retorna a parte minutos de um valor de tempo

Mês

Retorna o mês a partir de um valor de data

MsgBox

Exibe uma caixa de mensagem e (opcionalmente) retorna um valor

Agora

Retorna a data atual do sistema e do tempo

RGB

Retorna um valor RGB numérico que representa uma cor

Certo

Retorna um número especificado de caracteres da direita de uma string

Rnd

Retorna um número aleatório entre 0 e 1

RTrim

Retorna uma cópia de um texto, com espaços à direita removidos

Segundo

Retorna a parte segundos de um valor de tempo

SGN

Retorna um inteiro que indica o sinal de um número

Concha

Executa um programa executável

Pecado

Retorna sine um número

Espaço

Retorna uma string com um número especificado de espaços

Sqr

Retorna a raiz quadrada de um número

Str

Retorna uma representação de cadeia de um número

StrComp

Retorna um valor indicando o resultado de uma comparação de string

Corda

Retorna um personagem repetir ou string

bronzeado

Devolve a tangente de um número

Tempo

Retorna a hora atual do sistema

cronômetro

Retorna o número de segundos desde a meia-noite

TimeSerial

Retorna o tempo para uma especificado hora, minuto e segundo

TimeValue

Converte uma string em um número de série de tempo

aparar

Retorna uma seqüência de caracteres sem espaços à esquerda ou à direita

TypeName

Retorna uma string que descreve o tipo de dados de uma variável

UBound

Retorna o maior subscrição disponível para a dimensão de um array

UCase

Converte uma string para maiúsculas

Val

Retorna os números contidos em uma string

VarType

Retorna um valor que indica o subtipo de uma variável

dia da semana

Retorna um número que representa um dia da semana

Ano

Retorna o ano a partir de um valor de data

menu