Я думаю, что проблема возникает, потому что нет никакой опубликованной c ссылки на экземпляр Class1, потому что способ, которым вы создаете экземпляр, означает, что он является анонимным для VBA. Если вы используете Google, вы найдете множество рекомендаций не использовать «как новый класс» из-за проблем, которые он вводит.
В приведенном ниже пересмотренном коде (который больше похож на то, как вы будете использовать интерфейс) показано содержимое myClass довольно четко
Пересмотренный Class1
Option Explicit
Implements ITest
Private Type Properties
name As String
End Type
Private p As Properties
Private Property Get ITest_name() As String
ITest_name = name
End Property
Private Property Let ITest_name(ByVal Value As String)
name = Value
End Property
Public Property Let name(ByVal Value As String)
p.name = Value
End Property
Public Property Get name() As String
name = p.name
End Property
Пересмотренный интерфейс
Option Explicit
Public Property Get name() As String
End Property
Public Property Let name(ByVal Value As String)
End Property
Пересмотренный модуль
Option Explicit
Public Sub main()
Dim interface As ITest
Dim myClass As Class1
Set myClass = New Class1
Set interface = myClass
interface.name = "T1"
Debug.Print interface.name
End Sub
Если вы собираетесь работать с интерфейсами (и хорошо, если вы это сделаете), тогда вы найдете интерфейсный генератор в надстройке VBA Rubberduck (под рефакторингом), что сэкономит вам много времени на печатание.