Este tutorial irá mostrar uma variedade de atalhos realmente úteis no VBA
Use Alt + F11 para abrir o VBE
Normalmente, para acessar o Editor do Visual Basic, você precisa clicar no botão Visual Basic na faixa de opções do Excel. No entanto, você pode pressionar Alt + F11 em vez de!
Teclas rápidas no VBE
Ctl + r- mostra o Explorador de Projetos.
Ctl + g - mostra o Janela Imediata.
F4 - mostra o Janela de Propriedades.
F2 - mostra o Pesquisador de Objetos.
F5 - executa o Procedimento estás dentro.
F8 - permite que você avance pelo código Pausa modo.
Gravando uma Macro
Uma das melhores maneiras de aprender VBA é gravar uma macro e, em seguida, analisar o código. É também uma maneira muito rápida de escrever código, mas o gravador gravará TODAS as teclas pressionadas, portanto, você pode precisar editar seu código para remover linhas redundantes.
Vamos examinar a macro abaixo gravada pelo gravador de macro e ver como podemos torná-la mais eficiente.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 | Sub TestFormat ()''TestFormat Macro''Atalho de teclado: Ctrl + Shift + T'ActiveCell.FormulaR1C1 = "Applese"Intervalo ("D3"). SelecioneActiveCell.FormulaR1C1 = "Peras"Intervalo ("E3"). SelecioneActiveCell.FormulaR1C1 = "Pêssegos"Intervalo ("C4"). SelecioneActiveCell.FormulaR1C1 = "12"Intervalo ("D4"). SelecioneActiveCell.FormulaR1C1 = "14"Intervalo ("E4"). SelecioneActiveCell.FormulaR1C1 = "16"Intervalo ("C5"). SelecioneActiveCell.FormulaR1C1 = "20"Intervalo ("D5"). SelecioneActiveCell.FormulaR1C1 = "25"Intervalo ("E5"). SelecioneActiveCell.FormulaR1C1 = "26"Intervalo ("C6: E6"). SelecioneIntervalo ("E6"). AtiveSelection.FormulaR1C1 = "= SOMA (R [-2] C: R [-1] C)"Selection.Borders (xlDiagonalDown) .LineStyle = xlNoneSelection.Borders (xlDiagonalUp) .LineStyle = xlNoneSelection.Borders (xlEdgeLeft) .LineStyle = xlNoneCom Selection.Borders (xlEdgeTop).LineStyle = xlContinuous.ColorIndex = 0.TintAndShade = 0.Weight = xlThinTerminar comCom Selection.Borders (xlEdgeBottom).LineStyle = xlDouble.ColorIndex = 0.TintAndShade = 0.Weight = xlThickTerminar comSelection.Borders (xlEdgeRight) .LineStyle = xlNoneSelection.Borders (xlInsideVertical) .LineStyle = xlNoneSelection.Borders (xlInsideHorizontal) .LineStyle = xlNoneIntervalo ("C4: E6"). SelecioneSelection.NumberFormat = _"_- [$$ - en-US] * #, ## 0.00_; _- [$$ - en-US] * - #, ## 0.00; _- [$$ - en-US] *" " - "" ?? _; _- @ _ "Intervalo ("C3: E3"). SelecioneSelection.Font.Bold = TrueIntervalo ("C3"). SelecioneActiveCell.FormulaR1C1 = "Maçãs"End Sub |
Agora olhe para o código abaixo, que alcançará o mesmo resultado
123456789101112131415161718192021 | Sub TestFormat ()'Atalho de teclado: Ctrl + Shift + TIntervalo ("C3") = "Maçãs"Intervalo ("D3") = "Peras"Intervalo ("E3") = "Pêssegos"Intervalo ("C4") = 12Intervalo ("D4") = 14Intervalo ("C4") = 16Intervalo ("C5") = 20Intervalo ("D5") = 25Intervalo ("E5") = "26"Intervalo ("C6: E6"). SelecioneSelection.FormulaR1C1 = "= SOMA (R [-2] C: R [-1] C)"Selection.Borders (xlEdgeTop) .LineStyle = xlContinuousSelection.Borders (xlEdgeBottom) .LineStyle = xlDoubleIntervalo ("C4: E6"). SelecioneSelection.NumberFormat = _"_- [$$ - en-US] * #, ## 0.00_; _- [$$ - en-US] * - #, ## 0.00; _- [$$ - en-US] *" " - "" ?? _; _- @ _ "Intervalo ("C3: E3"). SelecioneSelection.Font.Bold = TrueEnd Sub |
Cortando muitos códigos redundantes e alterando o código gravado sempre que possível, podemos tornar a macro muito mais eficaz e fácil de ler.
Usando a pasta de trabalho Macro Pessoal
Se você deseja que uma macro possa ser usada em todos os seus arquivos do Excel, você pode armazenar a macro na pasta de trabalho Macro pessoal - esta pasta de trabalho está oculta e está aberta o tempo todo no Excel, tornando todas as macros armazenadas lá, macros globais .
Se você não vir uma pasta de trabalho de macros pessoais na janela do VBE, grave uma macro e especifique que ela seja armazenada na pasta de trabalho de macros pessoais.
Código de recuo
Quando você indenta seu código, imediatamente o torna mais fácil de ler e para que outra pessoa o siga. Para recuar várias linhas de código, você pode selecioná-las e pressionar a tecla Tab.
Da mesma forma, para ultrapassar o código, pressione Shift + Tab e o código se moverá para a esquerda novamente.
Cansado de procurar exemplos de código VBA? Experimente o AutoMacro!
Código de Comentário
Adicionar comentários ao código é outra maneira de facilitar a leitura e a navegação. Você adiciona um comentário ao código colocando uma aspa simples no início da linha, conforme mostrado abaixo.
Escrevendo em minúsculas
O VBA usa Case Adequado no código. Se você escrever em letras minúsculas e não mudar para caixa adequada, você poderá ver rapidamente onde cometeu um erro.
Usando Intellisense
O Intellisense aparece quando você está escrevendo um código e fornece uma lista de todas as propriedades, métodos e eventos que estão disponíveis para o objeto com o qual você está trabalhando. Normalmente, ele aparece automaticamente depois que você digita um ponto final ao digitar seu código.
Você também pode forçar a exibição pressionando Ctl + j.
Da mesma forma, quando você está usando funções no Excel que aceitam argumentos, eles normalmente aparecem automaticamente.
Você pode forçá-los a aparecer pressionando Ctl + i.
Autocompletar
Você pode usar o Ctl + Espaço combinação de teclas para usar o preenchimento automático ao escrever o código.
No exemplo acima, todos os Propriedades, métodos, eventos e Variáveis começando com str aparecerá na lista para você selecionar.
Opção explícita e código de compilação
Garantir que você tenha Option Explicit no topo de todos os seus módulos garante que todas as suas variáveis sejam declaradas e evita que você cometa erros de ortografia nos nomes das variáveis. Se você tiver Option Explicit ativado e compilar ou executar seu código, receberá um erro se um nome de variável não for reconhecido.
A janela imediata e depuração
A janela imediata (você pode ativá-la usando Ctl + g) permite que você depure seu código e encontre o valor das variáveis enquanto você está neste modo de depuração.
12345678 | Sub TestVariables'declara a variávelDim strNome como string'preencher a variávelstrName = "Anne Smith"'use F8 para percorrer o código e enviar o valor da variável usando debug.print para a janela imediataDebug.Print strNameEnd sub |