Olá Pessoal,
Mesmo sendo componentes nativos do VBA o TreeView e o ListView podem apresentar problemas quando utilizados em máquinas diferentes da que ele foi criado.
Esse problema deve-se a versão dos mesmo que pode variar de máquina para máquina.
Quando criamos um projeto e utilizamos algum componente do VBA o ID desse objeto é associado ao projeto, caso ao ser carregado ele verifique que o ID do objeto instalado na máquina é diferente do associado ao projeto ocorrerá o erro.
Para solucionar esse problema irei explicar uma maneira de contornar essa situação. Como o erro ocorre quando a versão é diferente da "original" iremos utilizar a versão que esta instalada na máquina.
OK mas como vamos fazer isso se não sabemos qual é a versão? A boa notícia é que o VBA fará isso automaticamente e não precisamos nos preocupar com isso, para isso vamos criar os controles em tempo de execução utilizando o seguinte código.
Para o TreeView
Set t = Me.Controls.Add("MSComctlLib.TreeCtrl")
Para o ListView
Set t = Me.Controls.Add("MSComctlLib.ListViewCtrl.2")
Todas as outras propriedades dos controles podem ser ajustadas posteriormente como quantidade de nós no TreeView e quantidades de colunas no ListView.
Com isso solucionamos esse problema que vem incomodando gerações de programadores do Office de uma maneira bem simples.
0 comentários:
Postar um comentário