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. Ao nos referirmos a essa 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 onde estamos escrevendo o código.
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 o comprimento do código drasticamente no VBA. Por exemplo, observe 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 ("Sheet1"). Ative Wb.Save Wb.Close Wb.SaveAs End Sub

Parece lindo, não é ??
Deixe-me explicar o código para vocês.
Primeiro, declarei a variável como um 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 frequê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.