Вместо сравнения строк используйте функцию DateValue или DateSerial .
DateValue
MsgBox (DateValue("07-12-2018") > DateValue("31-12-2016"))
Thisбудет правильно отображаться True
Примечание:
DateValue распознает порядок для месяца, дня и года в соответствии с форматом краткой даты, который вы указали для вашей системы
DateSerial
Независимо от формата краткой даты локальной системы, поскольку он использует отдельные аргументы для года, месяца и даты:
MsgBox (DateSerial(2018,12,7) > DateSerial(2016,12,31))