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.
Menu
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 |