For fun's sake, I tested how the Add-on would work :)
Didn't bother with the timer, but just made an entry in the Documents "User.Timer" cell after a short delay.
Here is the Add-on text.
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub Main()
Dim CmdLine As String
On Error GoTo Main_Err
CmdLine = Command$
Sleep 200
Dim appVisio As Visio.Application
Set appVisio = GetObject(, "Visio.Application")
appVisio.Documents(1).DocumentSheet.Cells("User.Timer").Formula = "1"
Set appVisio = Nothing
Exit Sub
Main_Err:
MsgBox Err.Description & "Err1"
End Sub
DEPENDSON (User.HideAll) is used to run the Add-on
Scratch.A1=RUNADDON("AddonMinMin")+DEPENDSON(User.HideAll)
It works.
Don't criticize the quality of my code. I just wanted to make sure this approach works.