Como o nome sugere, a função CreateObject é usada para criar objetos.
Mas por que usamos o método ou função CreateObject se podemos criar um objeto diretamente usando a nova palavra-chave?
Bem, essa é uma pergunta válida e temos uma resposta adequada.
A criação de um objeto usando o CreateObject é chamada Encadernação Tardia. Na ligação tardia, a criação de objetos acontece no tempo de execução. Não precisa de nenhuma referência a ser adicionada. Isso torna o código VBA portátil.
Por exemplo, se você criar um aplicativo que lida com outros aplicativos e usar ligação inicial adicionando referências e usando o novo palavra-chave. Mais tarde, você transfere esse código para outra máquina, então você terá que adicionar as referências nessa máquina também. Mas se você tiver usado o método CreateObject para criar outros objetos de aplicação, não precisará adicionar as referências em outras máquinas, caso transfira ou compartilhe o código.
Neste artigo, aprenderemos sobre o método CreateObject usando alguns exemplos.
Sintaxe da função CreateObject:
Definir object_name = CreateObject (classname as string, [servername]) |
classname como string: É uma variável necessária. É uma string que se refere ao nome do aplicativo e ao tipo de objeto. O nome do aplicativo e a classe do objeto a ser criado devem ser declarados em AppName.ObjecType. Por exemplo, se eu quiser um objeto do Word Application, eu escreveria "Word.Application". Veremos isso em detalhes em exemplos mais tarde.
[nome do servidor]: É uma variável opcional. É uma string do nome do servidor de rede onde o objeto será criado. Se servername for uma string vazia (""), a máquina local será usada. Não usaremos isso neste capítulo.
Agora que sabemos os fundamentos da função CreateObject, vamos usá-los em alguns exemplos:
Exemplo 1: Abra o aplicativo Microsoft Word usando Excel VBA
Portanto, se quiséssemos usar a vinculação inicial, adicionaríamos referências a aplicativos de palavras usando o menu Ferramentas -> Referências.
E nosso código ficaria assim.
Sub OpenWordApp () Dim wordApp como nova palavra.Application Dim wordDoc As Document wordApp.Visible = True wordDoc = wordApp.Documents.Add End Sub
A vantagem desse código, é que você obtém o auxílio da inteligência do VBA e mostra o método e as propriedades disponíveis do objeto que você criou. Funcionará perfeitamente bem no seu sistema. Mas, se você compartilhar esse código com outra pessoa e ela não tiver adicionado a referência à biblioteca de palavras da Microsoft nas ferramentas, receberá um erro.
Para evitar esse erro, use o código abaixo.
Sub OpenWordApp () Dim wordApp como objeto Definir wordApp = CreateObject ("Word.Application") Dim wordDoc como objeto wordApp.Visible = True Definir wordDoc = wordApp.Documents.Add End Sub
O código acima funcionará perfeitamente bem em qualquer máquina. É portátil, pois estamos fazendo uma ligação tardia usando o método CreateObject para criar o objeto.
Vamos ver outro exemplo:
Exemplo 2: Criar objeto de pasta de trabalho usando a função CreateObject
Se estiver trabalhando com o VBA por qualquer período de tempo, você deve ter criado ou adicionado pastas de trabalho usando a palavra-chave New. Neste exemplo, faremos isso usando CreateObject.
Sub addSheet () 'Declara uma variável de objeto para conter a referência do objeto. Dim as Object causa vinculação tardia. Dim ExcelSheet As Object Set ExcelSheet = CreateObject ("Excel.Sheet") 'Tornar o Excel visível através do objeto Aplicativo. ExcelSheet.Application.Visible = True 'Coloque algum texto na primeira célula da planilha. ExcelSheet.Application.Cells (1, 1) .Value = "Esta é a coluna A, linha 1" 'Salve a planilha no diretório C: \ test.xls. ExcelSheet.SaveAs "C: \ TEST.XLS" 'Feche o Excel com o método Quit no objeto Aplicativo. ExcelSheet.Application.Quit 'Libere a variável do objeto. Definir ExcelSheet = Nothing End Sub
Então sim pessoal, é assim que você usa o método CreateObject no VBA. Vamos discutir as vantagens e desvantagens disso.
Vantagens de CreateObject para criar Object
A principal vantagem do CreateObject é que ele torna seu código portátil (quando a criação do objeto é a preocupação). Você pode compartilhar o código com qualquer pessoa sem se preocupar se eles adicionaram a referência ao programa objeto usando ou não.
Deficiência de CreateObject
As deficiências do método CreateObject são:
Você precisa saber a estrutura da classe que usará para a criação do objeto.
Depois de criar o objeto, você fica totalmente dependente de sua memória para os métodos e propriedades dos objetos, pois o VBA não fornece nenhuma inteligência para ajudá-lo.
Podemos superar as deficiências acima. Eu tenho um truque.
Sempre que escrevo código que será compartilhado com outras pessoas, uso o primeiro método para criar objetos (Adicionar referências de ferramentas). Isso me ajuda a escrever o código mais rápido. Depois de terminar o programa VBA e testá-lo, substituo o método New pelo Método CreateObject. Isso torna o código portátil. Você pode usar este truque.
Então sim pessoal, é assim que você pode usar a função CreateObject para criar objetos no VBA. Espero ter explicado tudo. Se você tiver alguma dúvida sobre este artigo ou qualquer outra questão relacionada ao VBA, pergunte-me na seção de comentários abaixo.
Introdução aos Formulários de Usuário do Excel VBA| Explicarei como criar um formulário no Excel, como usar a caixa de ferramentas VBA, como lidar com as entradas do usuário e, finalmente, como armazenar as entradas do usuário. Percorreremos esses tópicos usando um exemplo e um guia passo a passo.
Variáveis VBA no Excel| VBA significa Visual Basic for Applications. É uma linguagem de programação da Microsoft. É usado com aplicativos do Microsoft Office, como MSExcel, MS-Word e MS-Access, enquanto as variáveis VBA são palavras-chave específicas.
Escopo de Variável Excel VBA| Em todas as linguagens de programação, temos especificadores de acesso à variável que definem de onde uma variável definida pode ser acessada. O Excel VBA não é exceção. O VBA também tem especificadores de escopo.
Argumentos ByRef e ByVal | Quando um argumento é passado como um argumento ByRef para uma subfunção ou função diferente, a referência da variável real é enviada. Quaisquer alterações feitas na cópia da variável, serão refletidas no argumento original.
Exclua planilhas sem prompts de confirmação usando VBA no Microsoft Excel | Como está excluindo planilhas usando o VBA, você sabe o que está fazendo. Você gostaria de dizer ao Excel para não mostrar este aviso e excluir a maldita planilha.
Adicionar e salvar uma nova pasta de trabalho usando VBA no Microsoft Excel 2016| Neste código, primeiro criamos uma referência a um objeto de pasta de trabalho. E então o inicializamos com um novo objeto de pasta de trabalho. A vantagem dessa abordagem é que você pode realizar operações nesta nova pasta de trabalho facilmente. Como salvar, fechar, excluir, etc.
Exibir uma mensagem na barra de status do Excel VBA| A barra de status no Excel pode ser usada como um monitor de código. Quando seu código VBA é longo e você executa várias tarefas usando o VBA, geralmente desativa a atualização da tela para não ver a tela piscando.
Desativar mensagens de aviso usando VBA no Microsoft Excel 2016| Este código não apenas desabilita alertas VBA, mas também aumenta a eficiência de tempo do código. Vamos ver como.
Artigos populares:
50 atalhos do Excel para aumentar sua produtividade | Torne sua tarefa mais rápida. Esses 50 atalhos farão você trabalhar ainda mais rápido no Excel.
A função VLOOKUP no Excel | Esta é uma das funções mais usadas e populares do Excel, que é usada para pesquisar valores em diferentes intervalos e planilhas.
CONT.SE no Excel 2016 | Conte valores com condições usando esta função incrível. Você não precisa filtrar seus dados para contar valores específicos. A função Countif é essencial para preparar seu painel.
Como usar a função SUMIF no Excel | Esta é outra função essencial do painel. Isso ajuda você a somar valores em condições específicas.