(не) безопасный способ сделать это - если вы согласны с тем, что не используете явную опцию - это ...
Not TypeName(myObj) = "Empty"
Это также обрабатывает случай, если объект не был объявлен. Это полезно, если вы хотите просто закомментировать объявление, чтобы отключить некоторое поведение ...
Dim myObj as Object
Not TypeName(myObj) = "Empty" '/ true, the object exists - TypeName is Object
'Dim myObj as Object
Not TypeName(myObj) = "Empty" '/ false, the object has not been declared
Это работает, потому что VBA автоматически создает необъявленную переменную как тип Empty Variant. Это устраняет необходимость вспомогательного логического выражения для управления поведением.