Here's something I had long forgotten. If you're using IsMissing in VBA, make sure you declare the variable within it as Variant. If not, the variable will be given the default value based on its type and IsMissing will always return false.