Tutorial 1 - Básico do VBA do
Excel Módulos e Procedimentos e Seu Escopo Chamando Procedimentos Sub e Procedimentos Function Passando Argumento pelo Valor ou por Referência O site de Suporte da Microsoft ou a seção de Ajuda (Help) do VBA Excel no seu computador contém exemplos compreensíveis sobre a maioria das coisas cobertas neste tutorial. Para mais informação, por favor, refira-se a eles.
1. Abra o Visual Basic Editor indo à guia Desenvolvedor, no grupo Código e clique no botão Visual Basic ou apenas pressione as teclas [Alt] e [F11] ao mesmo tempo.
3. Na janela Módulo, digite o seguinte: Sub mostrarMensagem()
4. Clique o botão Executar Sub/UserForm,, ou pressione [F5], ou vá para Executar...Executar Sub/UserForm para executar o programa
5. A caixa de mensagem aparece com a saudação "Alô Mundo!".
Este
é o seu primeiro programa VBA. 1. Selecione o botão Gravar macro no grupo Código, da guia Desenvolvedor.
2.
Na caixa de diálogo Gravar macro,
digite “ConfigurarCorDePreenchimento" na caixa de texto Nome da macro para designar o nome da
macro. Deixe todas as outras opções como default e
daí então clique no botão Ok. Isto
começará a gravação da macro. 3. No Painel de Cor de Fundo (Background), selecione a caixa de cor Amarelo Claro. Esta ação configurará o fundo da célula atual (A1) na cor amarelo claro.
Agora você tem uma macro gravada que configura o fundo da célula para amarelo claro. Ver a Sintaxe Gravada 1. Para carregar o Visual Basic Editor, pressione [Alt] e [F11] ao mesmo tempo. (Lembre-se de nossa lição anterior?) O Visual Basic Editor aparece.
2. Expandir a pasta Módulos no Project Explorer clicando no sinal de mais (+).
3. Duplo clique na pasta Módulo1 para ver a sub-rotina (macro).
No nosso exemplo anterior, criamos uma macro "Alô Mundo!". Nós rodamos a macro dentro do Visual Basic Editor. Desta vez nós rodamos o gravador de macro na planilha. 1. Em qualquer planilha, selecione de B2 a D4.
2. Rodar a macro gravada selecionando a guia Desenvolvedor...o grupo Código...o ícone... ou pressionando [Alt] e [F8] ao mesmo tempo. Ou ainda junto as guias de planilha, no fundo da planilha selecione o ícone
3. A caixa de diálogo
Macro é mostrada. Desde que existe somente uma macro no
módulo, por default a única macro, ConfigurarCorDePreenchimento é selecionada. Clique no botão Executar para rodar a macro. 4. As células do intervalo B2:D4 agora tem cor de fundo (background) laranja claro.
O procedimento sub (ou sub-rotina) seguinte imprime a data e o tempo atual na célula C1: Sub MostrarTempo() Range("C1") = Now() End Sub A função seguinte soma até dois números: Function somaNo(x, y) somaNo = x + y End Function Procedimentos no Visual Basic podem ter ou o escopo private ou public. Um procedimento com escopo private é somente acessível aos outros procedimentos no mesmo módulo; um procedimento com escopo public é acessível a todos procedimentos em cada módulo na pasta de trabalho na qual o procedimento é declarado, e em todas as pastas que contenham uma referência àquela pasta. Por default, procedimentos tem escopo public. Aqui estão exemplos de definição do escopo para procedimento. Public Sub MostrarTempo() Range("C1") = Now() End Sub
Range("C1") = Now() End Sub |
|
Chamando Procedimentos Sub e Procedimentos Function Existem duas maneiras de se chamar um procedimento sub. O exemplo seguinte mostra como um procedimento sub pode ser chamado pelos outros procedimentos sub. Sub z(a) MsgBox a End Sub
Call z("ABC") End Sub
z "ABC" End Sub
O exemplo seguinte chama um procedimento function de um procedimento sub. Sub MostrarSoma() msgbox somaNo(3,5) End Sub
somaNo = x + y End Function
Módulo1.MostrarSoma Passando Argumento por Referência ou por Valor Se você passar um argumento por referência quando chamar um procedimento, o procedimento acessa à variável atual na memória. Como resultado, o valor da variável pode ser mudado pelo procedimento. Passar por referência é o default no VBA. Se você não especificar explicitamente em passar um argumento por valor, o VBA o passará por referência. As duas declarações seguintes conduzem ao mesmo resultado. Sub AdicionaNo(ByRef x as integer) Sub AdicionaNo(x as integer)
Sub TestePassagem1() O exemplo seguinte mostra o comportamento por valor. O procedimento sub, TestePassagem2 chama AdicionaNo2 por valor e mostra "50" na caixa de mensagem. Sub TestePassagem2() |