.boolCase has not been defined, so therefore is Variant (I assume so that the "IsMissing" works OK). It might be clearer to define it explicitly as such- and even to name it "varUpperCase". I'd put a default in as well, to cut out the "IsMissing" test:
optional varUpperCase = "N"
I'd suggest that a varaibale called "bool" might be better named "boolUpperCase" (or even blnUpperCase if we followed the 3-character prefix)