title: How do I check if an optional string parameter was specified in VBA
body: <p>I have a VBA <code>Sub</code> whose signature Looks like so:</p>
  
  <pre><code>private sub xyz (                  _ 
         optional param_1 as string, _
         optional param_2 as string  _ 
  )
  </code></pre>
  
  <p><code>xyz</code> might be called like so</p>
  
  <pre><code>call xyz("apple")
  </code></pre>
  
  <p>or</p>
  
  <pre><code>call xyz("banana", "")
  </code></pre>
  
  <p>or</p>
  
  <pre><code>call xyz("strawberry", "blue")
  </code></pre>
  
  <p>I want the function to be able to determine if the caller has explicitely specified a value for <code>param_2</code> (which is the case in the 2nd and 3rd call).</p>
  
  <p>I have tried <code>param_1 is null</code>, <code>param_1 is empty</code> and <code>isNull(param_1)</code>, but nothing worked the way I'd have expected it.</p>
  
  <p>So what is the canonical way to check if a Parameter value was specified?</p>