Se você alterou o Tipo da propriedade e registrou sua biblioteca, a associação deveria aparecer como um link “indireto”, com o símbolo da “correntinha”.
Portanto, creio que você terá que refazer a associação.
Em tempo: embora não seja a melhor prática, é possível fazê-lo funcionar como umVariant
, no caso uma String
utilizando a função GetObject
conforme sua pergunta inicial. Vou deixar aqui um exemplo, caso refazer as associções demande muito trabalho:
Sub btnComando_Click()
Dim objCmdUnit
Dim objParent
Dim sPath : sPath = ""
' Usar nome do XC caso btn esteja agrupado
Set objParent = Parent
sPath = objParent.Comando
If (Trim(sPath) = "") Then
' Procura por link
For Each objLink In Parent.Links
If (objLink.Property = "Comando") Then
sPath = Trim(objLink.Source)
Exit For
End If
Next
End If
On Error Resume Next
Set objCmdUnit = Application.GetObject(sPath)
On Error Goto 0
If (TypeName(objCmdUnit) = "PowerCommandUnit") Then
' TODO: Verificar Interlock...
objCmdUnit.Operate()
Else
MsgBox "Por favor, associe corretamente uma unidade de comando ao:" & _
vbCrLf & "- '" & objParent.PathName & ".Comando'" & vbCrLf & _
" * Tipo atual: " & TypeName(objCmdUnit), _
vbExclamation
End If
End Sub