I'm not so confident with coding best (or worst practices) but can't help but feel there should be some sort of warning about declaring a variable at module level and also within subs / functions. There are no warnings or suggestions for the following:
Option Explicit
Private foo As String ' <<<
Public Sub bar()
Dim foo As String ' <<<
foo = "bar"
Debug.Print foo
End Sub
Public Sub foobar()
foo = "bar"
Debug.Print foo
End Sub
Public Sub foobarfoo()
foo = "bar"
Debug.Print foo
End Sub