Just as an alternative, I sometimes use error handling and explicit call the variable of interest:
Sub ScratchMacro()
'A basic Word macro coded by Greg Maxey
MsgBox ReadVar("Revision", "0")
lbl_Exit:
Exit Sub
End Sub
Public Function ReadVar(strVarName As String, strDefaultVal As String) As String
Dim oVar As Variable
Set oVar = ActiveDocument.Variables(strVarName)
On Error Resume Next
ReadVar = oVar.Value
If Err.Number <> 0 Then
ReadVar = strDefaultVal
WriteVar strVarName, strDefaultVal
End If
lbl_Exit:
Exit Function
End Function
Public Sub WriteVar(strVariable As String, strValue As String)
'Macro by Graham Mayor 26 May 2015
ActiveDocument.Variables(strVariable).Value = strValue
ActiveDocument.Save
lbl_Exit:
Exit Sub
End Sub