Если вы не объявляете переменную, она считается вариантом, а естественное состояние варианта - Пусто.
На самом деле первая строка печатает пустую строку в окне Immediate, поскольку оно пустое.
Когда он используется впервые, если у вас есть, VBA предполагает, что вы хотите использовать его как Boolean и поэтомуизменяется на логическое значение, а базовое или пустое значение логического значения равно False.
Sub MySub()
Debug.Print myVariable 'Prints and empty line As the variable is Empty Variant
If (myVariable) Then 'Treated as a Boolean with value False empty = false
Debug.Print "Condition is true"
Else
'This fires as base boolean value is False
Debug.Print "Condition is false"
End If
End Sub
Если вы хотите, чтобы всплывала ошибка, используйтеOption Explicit
вверху модуля или установите это значение по умолчанию в настройках.
Чтобы установить его по умолчанию, перейдите на Tools
==> Options
и нажмите Require Variable Declaration