VBA ThisWorkbook

Excel VBA ThisWorkbook

VBA ThisWorkbook significa a pasta de trabalho na qual estamos escrevendo o código do Excel. Por exemplo, se você estiver trabalhando na pasta de trabalho chamada “Vendas 2019.xlsx”, geralmente nos referimos à pasta de trabalho desta forma.

Pastas de trabalho (“Vendas 2019.xlsx”). Ative

O código ativará a pasta de trabalho chamada “Vendas 2019.xlsx”.

Em vez de escrever assim, podemos simplesmente escrever o código VBA abaixo.

ThisWorkbook.Activate '

Aqui, esta pasta de trabalho se refere à pasta de trabalho na qual estamos escrevendo o código. Referindo esta palavra, podemos executar todas as tarefas na pasta de trabalho atual e evitar códigos longos com um nome de pasta de trabalho totalmente nomeado.

Tenho certeza de que você também deve ter visto a palavra “Pasta de trabalho ativa” ao se referir ao código dos outros. Esta também é uma das palavras mais usadas na codificação. Veremos quais são as diferenças entre essas duas palavras no básico.

Trabalhando com este livro de trabalho no Excel VBA

A palavra de referência “ThisWorkbook” é mais confiável do que o qualificador de objeto Workbooks. Uma das tendências humanas é digitar o nome da pasta de trabalho incorretamente, o que resulta em uma mensagem de erro.

Mais uma razão importante pela qual VBA ThisWorkbook é mais confiável, porque apenas no caso, se alterarmos o nome da pasta de trabalho, precisamos alterar o código porque usamos a palavra “ThisWorkbook”.

Portanto, ThisWorkbook é mais seguro para se referir à pasta de trabalho em que estamos escrevendo o código.

Você pode baixar este modelo VBA ThisWorkbook Excel aqui - VBA ThisWorkbook Excel Template

Exemplo 1

Veremos alguns dos exemplos onde podemos usar a palavra ThisWorkbook no Excel VBA. O código a seguir imprimirá o nome da pasta de trabalho.

Código:

 Sub TWB_Example1 () Dim WBName As String WBName = ThisWorkbook.Name MsgBox WBName End Sub 

Quando você executa o código manualmente ou usando a tecla F5, o código acima mostrará o nome da pasta de trabalho na caixa de mensagem no VBA.

Exemplo # 2

Em vez de usar a palavra “Esta pasta de trabalho”, podemos usar variáveis ​​para definir a referência da pasta de trabalho e até mesmo reduzir drasticamente o comprimento do código no VBA. Por exemplo, olhe primeiro o código abaixo.

Código:

 Sub TWB_Example2 () ThisWorkbook.Activate ThisWorkbook.Worksheets ("Sheet1"). Ative ThisWorkbook.Save ThisWorkbook.Close ThisWorkbook.SaveAs End Sub 

O código acima usou “ThisWorkbook” em todas as linhas do código. Como é difícil digitar a palavra todas as vezes. Portanto, podemos minimizar isso usando variáveis.

Agora, olhe para o código abaixo com a variável.

Código:

 Sub TWB_Example2 () Dim Wb As Workbook Set Wb = ThisWorkbook Wb.Activate Wb.Worksheets ("Planilha1"). Ative Wb.Save Wb.Close Wb.SaveAs End Sub 

Está lindo, não é ??

Deixe-me explicar o código para vocês.

Primeiro, declarei a variável como objeto Workbook.

Dim Wb como pasta de trabalho

Como esta é uma variável de objeto, precisamos definir a referência para a pasta de trabalho específica. Portanto, usei a referência “ThisWorkbook”.

Definir Wb = ThisWorkbook

Agora, a variável “Wb” é referenciada à pasta de trabalho onde estamos escrevendo o código no momento. Daqui em diante no procedimento, não precisamos usar a palavra “ThisWorkbook”, em vez disso, podemos usar a variável “Wb”

Pasta de trabalho ativa versus esta pasta de trabalho no Excel VBA

Como eu disse no início do artigo, muitos programadores usam as palavras Ativa Workbook e ThisWorkbook com muita freqüência em sua codificação VBA. Como leitor ou novo aluno, não é fácil compreender os dois. Então, deixe-me explicar a você algumas das diferenças.

Diferença # 1: Significado

  • Pasta de trabalho ativa: a pasta de trabalho ativa não é necessariamente a pasta de trabalho em que estamos escrevendo o código no momento. Se você tiver várias pastas de trabalho abertas e a que estiver visível na tela, ela será considerada uma pasta de trabalho ativa .
  • ThisWorkbook: ThisWorkbook é sempre a pasta de trabalho onde estamos escrevendo o código no momento.

Diferença 2: chances de erro

  • Pasta de trabalho ativa: o uso de Ativo na codificação pode levar a muitos erros e confusão, porque nunca sabemos qual pasta de trabalho está ativa, a menos que mencionemos especificamente a pasta de trabalho a ser ativada antes de usar a palavra Pasta de trabalho ativa.
  • ThisWorkbook: ThisWorkbook não pode dar errado porque não importa qual pasta de trabalho está ativa, sempre leva a referência da pasta de trabalho onde estamos escrevendo o código.