Moduli di classe in estensioni personalizzate

Buongiorno a tutti,
ho il seguente problema:

  1. Ho scritto una piccola libreria per una estensione personale all’interno della quale ho realizzato un modulo di classe
  2. Ho un documento con delle macro; su tali macro viene caricata la libreria che ho realizzato al punto 1
  3. Non riesco ad istanziare il modulo di classe che è contenuto nella libreria.

NOTA - Se tento di fare l’istanza della classe da una funzione in un altro modulo generico, sempre sotto la libreria personale allora la classe funziona; inoltre se sposto il mio modulo di classe direttamente all’interno del mio documento il tutto funziona.

Qui a seguire il codice del modulo di classe presente all’interno della mia libreria personale:

Option Explicit
Option Compatible
Option ClassModule

' Optional members go here
Private _Cognome 	as String
Private _Nome 		as String


'***************** COSTRUTTORE/DISTRUTTORE ******************
' Constructor
Private Sub Class_Initialize()
	_Cognome = ""
	_Nome = ""
End Sub 

' Destructor
Private Sub Class_Terminate()
End Sub 

' Distruttore Esplicito
Public Sub Dispose()
	Call Class_Terminate()
End Sub


'************************ PROPRIETA' ************************
Public Property Let Cognome(value as string)
	_Cognome = Ucase(Trim(value))
End Property

Public Property Get Cognome() as String
	Cognome = _Cognome
End Property



Public Property Let Nome(value as String)
	_Nome = Ucase(Trim(value))
End Property

Public Property Get Nome() as String
	Nome = _Nome
End Property

'************************ Metodi ************************
Public Function NomeIntero() as String
	NomeIntero = _Nome & " " & _Cognome
End Function

Mentre invece qui il codice di esempio presente all’interno del mio documento:

Option Explicit


Sub Main
	'dim oLibTonky as Object
	dim oTest as Object
	dim oTest2 as Object
	dim myLibrary as Object
	
	'"Persona" è lo stesso modulo di classe soltanto messo 
	'direttamente nel documento, mentre invece "objPersona" 
	'è la stessa classe messa nella mia libreria.
	oTest2 = new Persona	
	oTest2.Nome = "Antonio"
	oTest2.Cognome = "Rossi"
	Print oTest2.NomeIntero()
	
	If GlobalScope.BasicLibraries.hasByName("TonkyUtility") Then
	    
	    'oLibTonky = GlobalScope.BasicLibraries.getByName("TonkyUtility")
    	'MsgBox oLibTonky.getByName("objPersona"), 0, "objPersona - Sorgente"
    	
    	GlobalScope.BasicLibraries.LoadLibrary("TonkyUtility")
    	Set oTest = Nothing
   		Set oTest = new objPersona '==> QUI GENERA ERRORE
		print oTest.Nome
		
		oTest.Nome = "Antonio"
    	oTest.Cognome = "Rossi"
		Print oTest.NomeIntero()
	Else
    	MsgBox "Library 'TonkyUtility' does not exist"
	End If
End Sub


Public Sub Test01()
	dim strTMP as String
	strTMP = "Test "
	Print strTMP
	
	If GlobalScope.BasicLibraries.hasByName("Tools") Then
		GlobalScope.BasicLibraries.LoadLibrary("Tools")
		strTMP = RTrimStr(strTMP, " ")
		Print strTMP
	End if
End Sub


Public Sub Test02()
	dim strTMP as String
	
	If GlobalScope.BasicLibraries.hasByName("TonkyUtility") Then
		GlobalScope.BasicLibraries.LoadLibrary("TonkyUtility")
		strTMP = "Mario"
		Test_Prova(strTMP, strTMP)
		Print strTMP
	End if
End Sub



Public Sub Test03()
	If GlobalScope.BasicLibraries.hasByName("TonkyUtility") Then
		GlobalScope.BasicLibraries.LoadLibrary("TonkyUtility")
		Call IstanziaPersona()
	End if
End Sub