Без принудительного явного объявления переменных с использованием Option Explicit
в верхней части каждого модуля VBA во время компиляции назначит вариант любым необъявленным именам переменных.Любой код, который VBA не может разрешить в качестве объекта, метода или свойства, станет переменной типа варианта с именем независимо от того, какой строкой является нераспознанный код.
UnrecognisedCodeString.VarType = vbEmpty
применяется до тех пор, пока ему не будет присвоено значение объекта или свойства
UnrecognisedCodeString.Value = vbNull
.
Если выпопробуйте что-нибудь сделать с неназначенной переменной, которая не будет работать:
InputFileName = This.Workbook.Path & "\" & "Master.xlsx"
оценивается как
InputFileName = vbNull.Workbook.Path & "\" & "Master.xlsx"
, а затем
InputFileName = vbNull
Что вызывает ошибку, поскольку vbNull
не является строкой.
Хорошая новость заключается в том, что вы можете установить VBA IDE всегдапотребуйте Option Explicit
, перейдя в Инструменты -> Параметры ... -> Редактор и установив флажок Требовать объявление переменной.

К сожалению, это не такРетроспектива ранее созданных модулей - только новые.