Janela imediata do Excel VBA - 5 maneiras incríveis de usá-la!

'Janela imediata' pode ser uma ferramenta útil para usar ao trabalhar com VBA no Excel.

A janela Imediata permite que você faça coisas rapidamente como:

  • Obtenha informações sobre arquivos do Excel (como contagem de planilhas em uma pasta de trabalho ou o nome da pasta de trabalho)
  • Obtenha informações de Debug.Print rapidamente
  • Execute uma linha de código em segundos
  • Execute uma macro (ou chame uma função)
  • Obtenha informações sobre as variáveis ​​(ou defina o valor ou as variáveis)

Embora você não precise usar a janela imediata para trabalhar com VBA no Excel, saber como usá-la bem pode torná-lo muito mais eficiente.

Neste tutorial, cobrirei tudo o que você precisa saber sobre a janela imediata e como melhor usá-la (explicado com exemplos).

Vamos começar!

O que é uma janela imediata no Excel VBA?

Janela imediata é uma parte do Editor VB que você pode usar para fazer algumas coisas rápidas.

Para dar um exemplo, se você tiver uma pasta de trabalho com algumas planilhas ocultas e quiser saber rapidamente a contagem do total de planilhas, você pode fazer isso em alguns segundos com a janela Imediato.

A janela imediata faz muito mais (como você verá mais adiante neste tutorial). Mas, para começar, vamos pensar na janela imediata como uma ferramenta para ajudá-lo a acelerar seu trabalho no Excel VBA.

Onde encontrar a janela imediata?

Ao abrir o Editor VB do Excel, você já deve ver a janela imediata como parte do Editor VB. E se você ainda não o vê, pode facilmente fazer com que apareça.

Abaixo estão as etapas para abrir o Editor VB e tornar a janela imediata visível:

  1. Clique na guia ‘Desenvolvedor’ na faixa do Excel (se você não vir a guia do desenvolvedor, clique aqui para saber como obtê-la)
  2. No Grupo de Código, clique em ‘Visual Basic’. Isso abrirá o Editor VB
  3. No Editor VB, clique na opção ‘Exibir’ no menu
  4. Clique na janela Immediate. Isso fará com que a janela imediata apareça no Editor VB.

Se você se sentir mais confortável com os atalhos, a seguir estão alguns para acelerar as etapas acima:

  • Para abrir o Editor VB - ALT + F11 (isso funciona mesmo se você não tiver a guia Desenvolvedor na faixa de opções)
  • Para mostrar a janela imediata - Control + G (use este em que o Editor VB está aberto)

Exemplos de uso da janela imediata no Excel VBA

Agora que você sabe onde encontrar a janela imediata, vamos ver alguns exemplos incríveis onde você pode usá-la ao trabalhar com o Excel VBA.

Obtenha informações sobre os arquivos / pastas de trabalho

A 'Janela Imediata' é um lugar onde você pode fazer perguntas sobre as pastas de trabalho e ela lhe dará a resposta imediatamente.

Por exemplo, suponha que você tenha uma pasta de trabalho e deseja saber quantas planilhas existem nela, você pode digitar o código abaixo na janela imediata e pressionar a tecla Enter.

? ActiveWorkbook.Sheets.Count

Isso informará instantaneamente o número total de planilhas na pasta de trabalho ativa.

Isso pode ser útil quando você tem uma pasta de trabalho que tem muitas folhas e não pode contá-la manualmente (ou não quer), ou quando você tem uma pasta de trabalho onde há folhas ocultas e deseja saber o total contar.

O ? (ponto de interrogação) deve ser usado antes da consulta para que o VBA possa entender que você está fazendo uma pergunta. Se você não usar este ponto de interrogação, a janela imediata não fornecerá o detalhe / resposta.

Agora, este é um exemplo realmente simples em que a janela imediata fornece algumas informações e economiza tempo.

Abaixo estão mais alguns exemplos:

Para obter o nome da pasta de trabalho ativa

? ActiveWorkbook.Name

Para obter o nome da página ativa

? Activesheet.Name

Para obter o caminho da pasta de trabalho (o endereço onde ela foi salva)

? ActiveWorkbook.Path

Portanto, se precisar de algo sobre um objeto (como pasta de trabalho, planilhas, gráficos, formas, intervalo, etc.), você pode usar a janela imediata para obter essas informações rapidamente.

Obtenha informações de Debug.Print

No Excel VBA, Debug.Print é usado para mostrar o valor de uma variável instantaneamente na janela imediata.

Por exemplo, o código a seguir mostraria instantaneamente a mensagem “Bom dia” na janela imediata.

Sub DisplayMessage () Debug.Print "Good Morning" End Sub

Você pode usar a linha Debug.Print em seu código para obter rapidamente alguns dados na janela imediata ou para depurar seu código.

Por exemplo, se você deseja obter os nomes de todas as planilhas em uma pasta de trabalho, pode usar o código a seguir:

Sub GetSheetNames () For Each sh Em ActiveWorkbook.Sheets Debug.Print sh.Name Next sh End Sub

O código acima passa por cada planilha da pasta de trabalho ativa e fornece o nome na janela imediata.

Debug.Print é uma técnica útil para depurar seu código. Por exemplo, se você estiver executando um loop e quiser ver quantas vezes o loop foi executado, você pode simplesmente colocar uma linha Debug.Print que simplesmente mostra os números crescentes quando cada loop é executado.

Se você estiver usando Debug.Print para depurar o código, lembre-se de removê-lo quando terminar.

Execute uma macro (ou uma função)

Embora existam várias maneiras de executar uma macro no Excel, uma das maneiras rápidas é usar a janela imediata.

Para executar uma macro, tudo que você precisa fazer é inserir o nome da macro na janela imediata e pressionar a tecla Enter (o cursor deve estar no final do nome da macro para que isso funcione).

Abaixo está um exemplo, onde assim que você insere o nome da macro na janela imediata, ele executa o código (onde o código exibe a mensagem “Bom dia” na janela imediata).

Isso pode ser útil quando você tem um código e deseja verificar se ele está funcionando conforme o esperado ou não. Você pode ter uma ou mais linhas Debug.Print no código e executar a macro na janela imediata.

Ele irá mostrar instantaneamente os valores na janela imediata e você pode verificar se tudo está funcionando bem ou não.

Você também pode usar a janela imediata para executar funções personalizadas.

Por exemplo, no exemplo abaixo, uma função é criada para verificar se um número é par ou ímpar. Você pode executar esta função na janela imediata, digitando a função com o argumento que ela recebe. Você precisa usar o ponto de interrogação neste caso, pois está solicitando que ele retorne um valor armazenado na função.

Execute uma linha de código (ou várias linhas de código)

Com a janela imediata, você também pode executar uma linha de código (ou várias linhas de código).

A melhor parte sobre isso é que você pode simplesmente abrir a janela imediata, executar o código e fechar (ao contrário de uma macro que você tem que colocar em uma janela de módulo e então executar).

Um caso de uso em que isso pode ser útil é quando você deseja reexibir rapidamente todas as planilhas na pasta de trabalho.

Abaixo está o código que você pode colocar na janela imediata para reexibir todas as planilhas na pasta de trabalho. Posicione o cursor no final da linha e assim que você pressionar a tecla Enter, todas as folhas serão mostradas.

Para cada planilha em Thisworkbook.Sheets: Sheet.Visible = True: Next Sheet

Observe que embora pareça uma única linha de código, é composta de três partes.

Cada parte é separada por um: (dois pontos), que atua como uma quebra de linha. Isso permite que você use o loop For Next na janela imediata para percorrer cada folha e alterar a propriedade visible para TRUE (que exibe qualquer folha oculta).

Obter Valores Variáveis

Ao começar a criar códigos VBA complexos, você terá que contar com variáveis ​​para fazer o trabalho.

Uma variável é algo que contém um valor e esse valor pode mudar durante a execução do código. Você pode usar uma janela imediata para verificar os valores dessas variáveis.

Abaixo está um código simples que fornece a soma dos primeiros 10 inteiros positivos e mostra o resultado na janela imediata.

Sub AddFirstTenNumbers () Dim Var As Integer Dim i As Integer Dim k As Integer For i = 1 To 10 k = k + i Next i Debug.Print i, k End Sub

Assim que você executar este código, verá o resultado abaixo na janela imediata. Isso instantaneamente informa que o código está funcionando bem e dando o resultado esperado.

Caso não esteja dando os resultados esperados, você pode depurar o código.

Muitas pessoas usam uma caixa de mensagem durante a depuração do código. Embora funcione bem, acho um pouco intrusivo, pois me leva à pasta de trabalho do Excel e mostra uma caixa de mensagem. Por outro lado, usar a janela imediata para depurar é muito mais suave e me mantém no próprio editor do Visual Basic.

Observação: se você estiver trabalhando com um código complexo e tiver várias variáveis ​​que precisa controlar, é melhor usar uma janela de observação. Uma Watch Window permite adicionar uma variável e então você pode ver como essa variável muda em tempo real (ou conforme você avança no código).

Definir o valor da variável ao depurar

Este é um uso um pouco avançado da janela Immediate, mas se você usá-lo, pode economizar muito tempo ao depurar o código.

Você pode usar a janela imediata para definir o valor de uma variável enquanto executa o código no modo de depuração (onde você define um ponto de interrupção para que o código não seja executado totalmente - mas até uma linha específica).

Por exemplo, se você tem um loop que é executado por 10 vezes e deseja verificar o que acontece quando o loop é executado pela 8ª vez, não é necessário percorrer o loop sete vezes para chegar à oitava iteração. Você pode simplesmente adicionar um ponto de interrupção antes do loop e alterar a variável do loop para 8. Agora, quando você executar o código, ele mostrará o que acontece quando os loops são executados pela oitava vez.

Isso se torna muito mais útil quando você está escrevendo códigos complexos e deseja depurar loops específicos.

Suponha que você tenha um código conforme mostrado abaixo:

Sub UnhideSheets () For i = 1 To Worksheets.Count Debug.Print Sheets (i) .Name Next i End Sub

O código acima simplesmente lista os nomes das planilhas de todas as planilhas da pasta de trabalho na janela imediata.

Se você não quiser listar os nomes de todas as folhas, mas apenas das folhas após a 10ª folha, você pode colocar um ponto de interrupção na segunda linha do loop (para que nada após essa linha seja executado) e, em seguida, alterar o variável 'i' a 11.

Para alterar o nome da variável na janela imediata, insira a seguinte linha:

i = 11

Isso garantirá que as primeiras 10 vezes do loop sejam ignoradas e o valor da sua variável seja definido como 11.

Encaixando / desencaixando a janela imediata

Você pode ter a janela acoplada imediatamente ao Editor VB - o que significa que ela permanece em um lugar no Editor VB e se move e se ajusta com ela.

E você também pode retirá-lo do dock, o que significa que é independente do Editor VB e pode ser movido como uma janela independente.

Abaixo está como você pode alterar as configurações de encaixe para a janela imediata:

  1. Clique na opção Ferramentas no menu do Editor VB
  2. Clique em ‘Opções’
  3. Na caixa de diálogo Opções, clique na última guia - Docking
  4. Marque a opção Janela Imediata para torná-lo encaixável e desmarque para torná-lo desencaixável.
  5. Clique OK

Como alternativa, se a janela imediata estiver visível, você também pode clicar com o botão direito e alterar a propriedade encaixável dela.

Encaixável significa que a janela imediata se tornaria uma parte da janela existente ao se posicionar em determinados lugares, como à esquerda da janela ou na parte inferior. Isso permite que as janelas encaixadas se movam e se dimensionem juntas.

A janela imediata não está aparecendo - aqui estão algumas maneiras de obtê-la

Pode haver várias razões para isso acontecer.

O motivo mais comum para você não ver uma janela imediata é que ela não ficou visível. Pode não estar visível por padrão e para fazê-lo aparecer, você precisa ir até a opção Exibir no menu e clicar na opção Janela Imediata. Isso garantirá que esteja visível no Editor VB.

Você também pode usar o teclado Control + G para fazer a janela imediata aparecer. Use este atalho de teclado enquanto estiver no Editor VB.

Outra razão pela qual você pode não ver a janela imediata é que ela foi minimizada agora está tão fechada que você não pode vê-la (conforme relatado aqui). Basta fazer uma verificação rápida e verificar se você vê um pequeno quadrado azul / vermelho à espreita em algum lugar. Você pode passar o cursor sobre ele e verá algumas opções para redimensioná-lo.

Se você não consegue ver a janela imediata, aqui está algo que funcionou para muitas pessoas (isso geralmente acontece por causa das mudanças na resolução da tela):

  1. Abra o Editor VB
  2. Pressione Ctrl-G para colocar o foco na janela imediata (ou clique na opção Exibir no menu e, a seguir, clique na janela imediata)
  3. Segure a tecla ALT e pressione a barra de espaço. Isso mostrará opções suspensas para a janela imediata.
  4. Pressione M (para mover)
  5. Use as setas do teclado para mover a janela
  6. Depois de descobrir onde está, torne-o maior

Eu peguei isso de um fórum aqui e também notei o mesmo sendo sugerido como uma solução para a janela imediata do VBA não aparecer.

Outra coisa que você pode tentar é desencaixar a janela imediata (vá para Ferramentas -> Opções -> Encaixar e desmarque a opção da janela imediata). Isso funcionou para algumas pessoas.

Você também pode gostar dos seguintes artigos:

  • Pasta de trabalho macro pessoal do Excel | Salvar e usar macros em todas as pastas de trabalho
  • Loops VBA do Excel: para o próximo, Do While, Do Until, For Each (com exemplos)
  • Trabalho com planilhas usando Excel VBA
  • Criando uma função definida pelo usuário (UDF) no Excel VBA

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave