Excel VBA GetObject

O VBA GetObject, como o nome, parece que precisamos criar um código para obter ou criar um objeto. Mas, na verdade, é o processo de obter as Tabelas de qualquer palavra para o arquivo Excel. No VBA GetObject, buscamos os dados de um arquivo do word colocando o local em que são mantidos e anexamos qualquer número de tabelas desse Word na planilha do Excel.

Sintaxe do VBA GetObject

A sintaxe é explicada como mostrado abaixo:

  • PathName = Aqui iremos fornecer o caminho para o documento do Word onde ele é mantido. Este campo é opcional.
  • Class = Aqui, precisamos definir a função Class of Object. Este é muito opcional. Mas se não estivermos definindo o PathName na sintaxe, será necessário definir Class.

Os dois argumentos da sintaxe são opcionais. Mas qualquer um deles deve ser definido.

Aqui, usaremos appname.objecttype para definir a classe. AppName será o aplicativo ou tipo de arquivo do qual buscaremos os dados e Objecttype será o tipo de aplicativo de arquivo que usaremos.

Exemplo da função GetObject no Excel VBA

Veremos como buscar os dados na forma de Tabela em um documento do Word e anexá-los na planilha do Excel.

Você pode fazer o download deste modelo do VBA GetObject Excel aqui - Modelo do VBA GetObject Excel

Para isso, exigimos esses dados no arquivo word. Aqui, temos um arquivo do Word abaixo, que possui 2 tabelas de Nome e ID do funcionário.

Salvamos esse arquivo em algum lugar da unidade local, de fácil acesso. Siga as etapas abaixo para usar a função GetObject no Excel VBA.

Etapa 1: Vá para a janela VBA e abra um módulo na guia do menu Inserir, como mostrado abaixo.

Etapa 2: No recém-aberto módulo, escreva a subcategoria do VBA GetObject ou você pode escolher qualquer outro nome, conforme a necessidade.

Etapa 3: primeiro, defina a variável 2 Object para acessar o objeto preparado pelo VBA GetObject.

Etapa 4: precisaríamos de outra variável para a qual armazenaremos o local de File como String.

Etapa 5: para evitar qualquer interrupção se ocorrer um erro, continuaremos retomando a próxima etapa.

Etapa 6: Agora, usaríamos a função GetObject e a definiríamos como objeto do WordFile . Mantendo o Caminho em branco, definiremos a Classe como Word.Application em que o Word é o aplicativo da Microsoft.

Etapa 7: para evitar o erro número 429, que geralmente ocorre nesse caso, vamos limpá-lo à medida que acontece.

Etapa 8: agora torne visível a variável de objeto criada WordFile .

Etapa 9: como ainda não definimos o caminho, atribuiremos o local do arquivo ao StrDoc junto com a extensão.

Etapa 10: se não encontramos nada no arquivo do word, devemos receber uma mensagem informando que "Não há dados disponíveis" ou "Documento não encontrado". E isso seria feito no loop If-End If.

Etapa 11: Agora ative o arquivo do Word.

Etapa 12: Faça o mesmo procedimento para configurar o WordDoc também. Se o WordDoc não for nada, abriremos o arquivo no local em que ele é mantido.

Etapa 13: Agora precisaremos definir as variáveis ​​que ajudarão a acessar a tabela a partir do documento do Word. Com isso, criaremos uma tabela com linhas e colunas.

Passo 14: Como todos sabemos, o vértice das células é bidimensional. Portanto, a partir da 1ª célula, precisaríamos de 2 variáveis ​​onde definiremos o local de onde precisamos iniciar nossa tabela no Excel. Aqui, consideramos a posição em (1, 1) que está na 1ª célula da folha.

Etapa 15: Nesse estágio, precisamos verificar o número de tabelas no arquivo do Word. E se não houver tabelas encontradas, devemos receber a mensagem para isso.

Etapa 16: nesta etapa, precisamos acessar a tabela do documento do Word e mapeá-la no arquivo do Excel. Para isso, usaremos o loop For para cada linha e coluna.

Etapa 17: Por fim, encerraremos o documento depois que ele anexar os dados do word ao arquivo do excel sem salvar o arquivo.

Etapa 18: Agora, execute o código acima pressionando a tecla F5 ou clicando no botão Play.

Veremos, os dados que vimos no início do artigo, que foram separados em 2 tabelas diferentes, agora são anexados em uma única tabela na planilha do Excel.

Abaixo está o código completo em uma sequência:

Código:

 Sub VBA_GetObject () Dim WordFile como objeto Dim WordDoc como objeto Dim StrDoc como seqüência de caracteres em erro Continuar Próximo conjunto WordFile = GetObject (, "Word.Application") If Err.Number = 429 Então Err.Clear Defina WordFile = CreateObject ("Word. Aplicativo ") End If WordFile.Visible = True StrDoc =" D: \ Input \ Test.docx "Se Dir (StrDoc) =" "Então MsgBox StrDoc & vbCrLf &" Não encontrado no caminho mencionado "& vbCrLf &" C: \ Local de entrada ", vbExclamation, " Nome do documento não encontrado "Sair Sub End If WordFile.Activate Defina WordDoc = WordFile.Documents (StrDoc) Se WordDoc não for nada, defina WordDoc = WordFile.Documents.Open (" D: \ Input \ Test. docx ") WordDoc.Activate Dim Tble como inteiro Dim RowWord como longo Dim ColWord como inteiro Dim A como longo Dim B Como longo A = 1 B = 1 Com WordDoc Tble = WordDoc.Tables.Count If Tble = 0 Then MsgBox" Sem tabelas Disponível ", vbExclamation, " Nothing to Import "Exit Sub End If For i = 1 To Tble With .Tables (i) For RowWord = 1 To .Rows.Count For ColWord = 1 To .Columns.Count Cells (A, B) = WorksheetFunctio n.Clean (.cell (RowWord, ColWord) .Range.Text) B = B + 1 Próximo ColWord B = 1 A = A + 1 Próximo RowWord End With Next End With WordDoc.Close Savechanges: = False WordFile.Quit Definir WordDoc = Nada definido WordFile = Nada End Sub 

Profissionais do Excel VBA GetObject

  • É bastante útil na importação do grande conjunto de dados do arquivo word para o arquivo excel.
  • Podemos importar qualquer tipo de dados de qualquer tipo de arquivo apenas alterando a extensão dele.

Coisas para lembrar

  • Feche todos os arquivos do word antes de executar o código.
  • Dê a extensão adequada ao arquivo que está sendo usado.
  • GetObject não pode ser usado para acessar a referência à classe.

Artigos recomendados

Este é um guia para o VBA GetObject. Aqui discutimos como usar a função GetObject no VBA para buscar os dados de um arquivo do Word na planilha do Excel, juntamente com um exemplo prático e um modelo do Excel para download. Você também pode consultar nossos outros artigos sugeridos -

  1. VBA GetOpenFileName
  2. Painel de KPI no Excel
  3. Pasta de trabalho do VBA aberta
  4. Contagem de Palavras do Excel
  5. Excel VBA On Error Resume Próximo

Categoria: