Codificação VBA do Excel: Trabalhando com uma janela de código

Conforme você se torna proficiente no Excel VBA, passa muito tempo trabalhando nas janelas de código. As macros que você grava são armazenadas em um módulo e você pode digitar o código VBA do Excel diretamente em um módulo VBA.

Minimizando e maximizando as janelas de código VBA

Se você tiver vários projetos abertos, o VBE pode ter muitas janelas de código a qualquer momento.

Codificação VBA do Excel: Trabalhando com uma janela de código

A sobrecarga da janela de código não é uma visão bonita.

As janelas de código são muito parecidas com as janelas de pasta de trabalho do Excel. Você pode minimizá-los, maximizá-los, redimensioná-los, ocultá-los, reorganizá-los e assim por diante. A maioria das pessoas acha muito mais fácil maximizar a janela de código em que estão trabalhando. Isso permite que você veja mais código e evita que você se distraia.

Para maximizar uma janela de código, clique no botão Maximize em sua barra de título (ao lado do X). Ou apenas clique duas vezes em sua barra de título para maximizá-la. Para restaurar uma janela de código ao seu tamanho original, clique no botão Restaurar. Quando uma janela é maximizada, sua barra de título não fica visível, então você encontrará o botão Restaurar abaixo da barra de título do VBE.

Às vezes, você pode querer ter duas ou mais janelas de código visíveis. Por exemplo, você pode querer comparar o código em dois módulos ou copiar o código de um módulo para outro. Você pode organizar as janelas manualmente ou escolher Janela → Organizar horizontalmente ou Janela → Organizar verticalmente para organizá-las automaticamente.

Você pode alternar rapidamente entre as janelas de código pressionando Ctrl + F6. Se você repetir essa combinação de teclas, continuará percorrendo todas as janelas de código abertas. Pressionar Ctrl + Shift + F6 percorre as janelas na ordem inversa. (Para obter mais informações, verifique estes atalhos de teclado do Excel VBA .)

Minimizar uma janela de código tira isso do caminho. Você também pode clicar no botão Fechar da janela (que exibe X) na barra de título de uma janela de código para fechá-la. (Fechar uma janela apenas a oculta; você não perderá nada.) Para abri-la novamente, basta clicar duas vezes no objeto apropriado na janela Projeto. A propósito, trabalhar com essas janelas de código parece mais difícil do que realmente é.

Criando um módulo VBA

Em geral, um módulo Excel VBA pode conter três tipos de código:

  • Declarações: uma ou mais declarações de informações que você fornece ao VBA. Por exemplo, você pode declarar o tipo de dados para variáveis ​​que planeja usar ou definir algumas outras opções para todo o módulo. As declarações são basicamente declarações de manutenção. Eles não são realmente executados.
  • Subprocedimentos: Um conjunto de instruções de programação que, quando executado, realiza alguma ação.
  • Procedimentos de função: um conjunto de instruções de programação que retorna um único valor (semelhante em conceito a uma função de planilha, como SUM).

Um único módulo VBA pode armazenar qualquer número de procedimentos Sub, procedimentos de Função e declarações. Bem, não é um limite - cerca de 64.000 caracteres por módulo. É improvável que você chegue perto de atingir o limite de 64.000 caracteres. Mas se você fez isso, a solução é simples: basta inserir um novo módulo.

Como você organiza um módulo VBA depende totalmente de você. Algumas pessoas preferem manter todo o código VBA de um aplicativo em um único módulo VBA; outros gostam de dividir o código em vários módulos. É uma escolha pessoal, assim como organizar os móveis.

Obtendo o código VBA em um módulo

Um módulo VBA vazio é como a comida falsa que você vê nas vitrines de alguns restaurantes chineses; parece bom, mas não faz muito por você. Antes de fazer qualquer coisa significativa, você deve ter algum código VBA no módulo VBA. Você pode obter o código VBA em um módulo VBA de três maneiras:

  • Digite o código diretamente.
  • Use o gravador de macro do Excel para registrar suas ações e convertê-las em código VBA.
  • Copie o código de um módulo e cole-o em outro.

Inserindo o código VBA do Excel diretamente

Às vezes, o melhor caminho é o mais direto. Inserir o código diretamente envolve ... bem, inserir o código diretamente. Em outras palavras, você digita o código usando o teclado. A inserção e edição de texto em um módulo VBA funcionam conforme o esperado. Você pode selecionar, copiar, cortar, colar e fazer outras coisas no texto.

Use a tecla Tab para recuar algumas das linhas para tornar seu código mais fácil de ler. Recuar não é necessário, mas é um bom hábito de adquirir. Ao estudar a codificação VBA do Excel, você entenderá por que recuar as linhas de código é útil.

Uma única linha de código VBA pode ser tão longa quanto você precisar. No entanto, você pode querer usar os caracteres de continuação de linha para quebrar linhas de código longas. Para continuar uma única linha de código (também conhecida como instrução) de uma linha para a próxima, termine a primeira linha com um espaço seguido por um sublinhado (_). Em seguida, continue a declaração na próxima linha. E não se esqueça do espaço. Um caractere de sublinhado que não é precedido por um espaço não fará o trabalho.

Aqui está um exemplo de uma única instrução dividida em três linhas:

Selection.Sort Key1: = Range ("A1"), _
  Order1: = xlAscending, Header: = xlGuess, _
  Orientação: = xlTopToBottom

Esta instrução teria exatamente o mesmo desempenho se fosse inserida em uma única linha (sem caracteres de continuação de linha). Observe que a segunda e a terceira linhas dessa instrução estão indentadas. O recuo é opcional, mas ajuda a esclarecer o fato de que essas linhas não são instruções separadas.

Os engenheiros de jaleco branco que projetaram o VBE previram que as pessoas cometeriam erros. Portanto, o VBE tem vários níveis de desfazer e refazer. Se você excluiu um extrato que não deveria, clique no botão Desfazer na barra de ferramentas (ou pressione Ctrl + Z) até que o extrato apareça novamente. Após desfazer, você pode clicar no botão Refazer para realizar as alterações que você desfez.

Você está pronto para inserir algum código real ao vivo? Experimente os seguintes passos:

Crie uma nova pasta de trabalho no Excel.

Pressione Alt + F11 para ativar o VBE.

Clique no nome da nova pasta de trabalho na janela Projeto.

Choose Insert → Module to insert a VBA module into the project.

Type the following code in the module:

Sub GuessName()
Msg = "Is your name " & Application.UserName & "?"
Ans = MsgBox(Msg, vbYesNo)
If Ans = vbNo Then MsgBox "Oh, never mind."
If Ans = vbYes Then MsgBox "I must be psychic!"
End Sub

Position the cursor anywhere within the text you typed and press F5 to execute the procedure.

F5 is a shortcut for Run → Run Sub/UserForm. If you entered the code correctly, Excel executes the procedure, and you can respond to the simple dialog box. The text in the dialog box will be different from the text shown here.

Codificação VBA do Excel: Trabalhando com uma janela de código

The GuessName procedure displays this dialog box.

When you enter the code listed in Step 5, you might notice that the VBE makes some adjustments to the text you enter. For example, after you type the Sub statement, the VBE automatically inserts the End Sub statement. And if you omit the space before or after an equal sign, the VBE inserts the space for you. Also, the VBE changes the color and capitalization of some text. This is all perfectly normal. It’s just the VBE’s way of keeping things neat and readable.

If you followed the previous steps, you just wrote a VBA Sub procedure, also known as a macro. When you press F5, Excel executes the code and follows the instructions. In other words, Excel evaluates each statement and does what you told it to do. (Don’t let this newfound power go to your head.) You can execute this macro any number of times — although it tends to lose its appeal after a few dozen times.

For the record, this simple Excel macro uses the following concepts:

  • Defining a Sub procedure (the first line)
  • Assigning values to variables (Msg and Ans)
  • Concatenating (joining) a string (using the & operator)
  • Using a built-in VBA function (MsgBox)
  • Using built-in VBA constants (vbYesNo, vbNo, and vbYes)
  • Using an If-Then construct (twice)
  • Ending a Sub procedure (the last line)

Using the Excel VBA macro recorder

Another way you can get code into a VBA module is by recording your actions, using the Excel macro recorder.

By the way, there is absolutely no way you can record the GuessName procedure shown above. You can record only things that you can do directly in Excel. Displaying a message box is not in Excel’s normal repertoire. (It’s a VBA thing.) The macro recorder is useful, but in many cases, you’ll probably need to enter at least some code manually.

Here’s a step-by-step example that shows how to record a macro that inserts a new worksheet and hides all but the first ten rows and all but the first ten columns. If you want to try this example, start with a new, blank Excel workbook and follow these steps:

Activate a worksheet in the workbook.

Any Excel worksheet will do.

Click the Developer tab, and make sure that Use Relative References is not highlighted.

This macro is recorded using Absolute References.

Choose Developer → Code → Record Macro, or click the icon next to the Ready indicator on the left end of the status bar.

Excel displays its Record Macro dialog box.

In the Record Macro dialog box, name the macro TenByTen, specify that you want the macro stored in This Workbook, and press Shift+T for the shortcut key.

The macro can be executed when you press Ctrl+Shift+T.

Click OK to start recording. Excel automatically inserts a new VBA module into the project that corresponds to the active workbook.

From this point on, Excel converts your actions to VBA code. While you’re recording, the icon in the status bar turns into a small square. This is a reminder that the macro recorder is running. You can also click that icon to stop the macro recorder.

Click the New Sheet icon to the right of the last sheet tab.

Excel inserts a new worksheet.

Select the entire Column K (the 11th column) and press Ctrl+Shift+right arrow; then right-click any selected column and choose Hide from the shortcut menu.

Excel hides all of the selected columns.

Select the entire Row 11 and press Ctrl+Shift+down arrow; then right-click any selected row and choose Hide from the shortcut menu.

Excel hides all of the selected columns.

Select cell A1.

Choose Developer → Code → Stop Recording, or click the Stop Recording button on the status bar (the small square). Excel stops recording your actions.

Para visualizar essa macro recém-gravada, pressione Alt + F11 para ativar o VBE. Localize o nome da pasta de trabalho na janela Projeto. Você vê que o projeto tem um novo módulo listado. O nome do módulo depende se você tinha outros módulos na pasta de trabalho quando começou a gravar a macro. Caso contrário, o módulo é denominado Módulo1. Você pode clicar duas vezes no módulo para visualizar a janela de código do módulo.

Este é o código gerado por suas ações:

Sub TenByTen ()
'
Macro 'TenByTen
'
'Atalho de teclado: Ctrl + Shift + T
'
  Sheets.Add After: = ActiveSheet
  Colunas ("K: K"). Selecione
  Intervalo (Seleção, Seleção.End (xlToRight)). Selecione
  Selection.EntireColumn.Hidden = True
  Linhas ("11:11"). Selecione
  Intervalo (Seleção, Seleção.Fim (xlDown)). Selecione
  Selection.EntireRow.Hidden = True
  Intervalo ("A1"). Selecione
End Sub

Para tentar esta macro, ative qualquer planilha e pressione a tecla de atalho que você atribuiu na Etapa 4: Ctrl + Shift + T.

Se você não atribuiu uma tecla de atalho à macro, não se preocupe. Veja como exibir uma lista de todas as macros disponíveis e executar a que você deseja:

Escolha Desenvolvedor → Código → Macros. Os fãs de teclado podem pressionar Alt + F8.

Qualquer um desses métodos exibe uma caixa de diálogo que lista todas as macros disponíveis.

Selecione a macro na lista (neste caso, TenByTen).

Clique no botão Executar.

O Excel executa a macro e você obtém uma nova planilha com dez linhas visíveis e dez colunas visíveis.

Você pode executar qualquer número de comandos e qualquer número de ações enquanto o gravador de macro está funcionando. O Excel traduz devidamente as ações do mouse e as teclas digitadas em código VBA.

E, é claro, você também pode editar a macro depois de gravá-la. Para testar suas novas habilidades, tente editar a macro para que ela insira uma planilha com nove linhas e colunas visíveis - perfeito para um quebra-cabeça Sudoku.

Copiando código VBA

O método final para obter o código em um módulo VBA é copiá-lo de outro módulo ou de algum outro lugar (como um site). Por exemplo, um procedimento Sub ou Function que você escreve para um projeto também pode ser útil em outro projeto. Em vez de perder tempo digitando novamente o código, você pode ativar o módulo e usar os procedimentos normais de copiar e colar da área de transferência. (Você provavelmente gosta muito dos atalhos de teclado Ctrl + C para copiar e Ctrl + V para colar.) Depois de colar o código em um módulo VBA, você pode modificar o código, se necessário.

A propósito, você encontrará muitos exemplos de código VBA na web. Se quiser experimentá-los, selecione o código em seu navegador e pressione Ctrl + C para copiá-lo. Em seguida, ative um módulo e pressione Ctrl + V para colá-lo.

Quando você copia o código de um site, às vezes requer alguns consertos. Por exemplo, os caracteres de aspas podem ser “aspas inteligentes” e devem ser convertidos em caracteres de aspas simples. E às vezes, longas linhas se enrolam. Declarações errôneas são fáceis de detectar no VBE porque aparecem em vermelho.

Leave a Comment

12 Atalhos de teclas de função do Word 2016

12 Atalhos de teclas de função do Word 2016

Descubra os principais atalhos de teclado do Word 2016 para melhorar sua produtividade. Desde o uso das teclas de função até rápidas combinações de atalhos.

Apagar desenhos de caneta e marca-texto nos slides do PowerPoint

Apagar desenhos de caneta e marca-texto nos slides do PowerPoint

Aprenda como apagar desenhos de caneta e marca-texto nos slides do PowerPoint para manter suas apresentações sempre organizadas e profissionais.

Como remover campos e itens calculados de uma tabela dinâmica do Excel

Como remover campos e itens calculados de uma tabela dinâmica do Excel

Você pode remover facilmente campos e itens calculados de uma tabela dinâmica do Excel. Siga os passos simples para gerenciar seus dados de forma eficiente!

Como usar o recurso de documento mestre do Word 2019

Como usar o recurso de documento mestre do Word 2019

Descubra como usar o recurso de documento mestre do Word 2019 para organizar grandes documentos de forma eficiente e otimizar a edição. Ideal para romances e textos longos.

Smartsheet 9.1.1

Smartsheet 9.1.1

Smartsheet é uma plataforma de trabalho dinâmica que permite gerenciar projetos, criar fluxos de trabalho e colaborar com sua equipe.

SharePoint

SharePoint

SharePoint é um sistema de colaboração baseado na web que usa uma variedade de aplicativos de fluxo de trabalho, bancos de dados de “lista” e outros componentes da web, bem como recursos de segurança para dar controle ao trabalho conjunto de grupos empresariais.

Calendário Perpétuo 1.0.38/1.0.36

Calendário Perpétuo 1.0.38/1.0.36

Van Nien Calendar é um aplicativo de visualização de calendário em seu telefone, ajudando você a ver rapidamente a data lunisolar em seu telefone, organizando assim seu trabalho importante.

Microsoft Outlook 2021

Microsoft Outlook 2021

O Microsoft Outlook é um aplicativo comercial e de produtividade desenvolvido pela Microsoft Corporation.

Clique para cima

Clique para cima

ClickUp é uma das plataformas de produtividade mais bem avaliadas para qualquer empresa. Grandes empresas como Google, Booking.com, San Diego Padres e Uber usam ClickUp para aumentar a produtividade no local de trabalho.

Visualizador PDF-XChange 2.5.322.10

Visualizador PDF-XChange 2.5.322.10

PDF se tornou um formato comumente usado para leitura, criação e envio de documentos de texto. Por sua vez, tem havido um aumento no número de programas utilizados para este tipo de documentação. PDF-XChange Viewer está entre um número crescente de visualizadores de PDF.