Eu estava olhando para esta pergunta: Módulo de importação Excel-VBA de arquivo de texto (sem necessidade de central de confiança)
O código apresentado faz uso do .Modules
membro da propriedade que parece ser uma coleção de módulos VBA.
No entanto, não consigo usá-lo no Excel VBA. Ele sempre retorna uma coleção com zero objetos ou recebo um erro de incompatibilidade:
Sub Test1()
Dim mds As Modules
Set mds = Application.Modules
Debug.Print mds.Count
'Output: 0
End Sub
Sub Test2()
Dim mds As Modules
Set mds = ThisWorkbook.Modules 'This line will return a type mismatch error
Debug.Print mds.Count
End Sub
Sub Test3()
Dim mds
Set mds = ThisWorkbook.Modules
Debug.Print mds.Count
'Output: 0
End Sub
Esse problema parece ser específico do Excel VBA porque se eu adicionar um módulo VBA a um projeto do Access e tentar executar Test1
, recebo um número diferente de zero. Observe também que Módulos está documentado apenas para Access.
Tentei ver a definição no Navegador de objetos. É um pouco estranho porque a propriedade está oculta e retorna um Sheets
objeto em vez de Modules
.
Esse recurso foi removido do Excel por motivos de segurança ou algo assim? Estou usando o Microsoft® Excel® para Microsoft 365 MSO (versão 2310 Build 16.0.16907.20000) de 64 bits.