Late Binding Variables globales?

Estoy usando VBA para Excel. Según tengo entendido, las variables globales deben declararse fuera de cualquier subs. Esa es la única forma en que pueden acceder todos los subs.

ientras tanto, quiero hacer un enlace tardío para hacer referencia a la biblioteca "Microsoft Scripting Runtime" (para usar el tipo de objeto de diccionario) para que un usuario final no tenga que hacerlo él mismo.

Mi código es el siguiente:

On Error Resume Next
strGUID = "{420B2830-E718-11CF-893D-00A0C9054228}"
ThisWorkbook.VBProject.References.AddFromGuid GUID:=strGUID, Major:=1, Minor:=0

Dim Dic1 As Object
Set Dic1 = CreateObject("Scripting.Dictionary")
Dim Dic2 As Object
Set Dic2 = CreateObject("Scripting.Dictionary")

¿Qué sucede si deseo declarar un objeto de diccionario global con enlace tardío? Parece que VBA no me permitirá poner ningún código fuera de los subs (aparte de las declaraciones).

¿Cómo puedo declarar un objeto de diccionario global sin necesidad de que el usuario final configure la referencia de la biblioteca él mismo? ¿Debo ponerme lo siguiente?

Dim Dic1 As Object
Dim Dic2 As Object

Sub Prog1()
    On Error Resume Next
    strGUID = "{420B2830-E718-11CF-893D-00A0C9054228}"
    ThisWorkbook.VBProject.References.AddFromGuid GUID:=strGUID, Major:=1, Minor:=0

    Set Dic1 = CreateObject("Scripting.Dictionary")
    Set Dic2 = CreateObject("Scripting.Dictionary")
End Sub

Respuestas a la pregunta(2)

Su respuesta a la pregunta