省略可能な引数の初期値
たまに、省略可能な引数の初期値を空っぽにすることがある。
↓ こんな感じで。
Sub Test(Optional myDate As Date = Empty) If myDate = Empty Then myDate = Date End If Debug.Print myDate End Sub
日付の指定があった場合は、その日付に。
指定の日付が無い場合は、本日の日付に。
ちなみにEmptyではなくDateを初期値にすると、ご覧のとおり怒られる。
ところで最近思ったのだが、上記の例で言えば、敢えて
= Empty
まで書く必要があるのだろうか。これで充分のような気もする。
Sub Test(Optional myDate As Date)
敢えて利点を述べるなら、Date型は初期化の時点で何が入っているか?が明示されていることか。
Sub Test2() Dim r As Range Dim str As String Dim mydate As Date Dim i As Long End Sub
最近、自分のコードが冗長傾向にあると思っていたので、
今後は少しスリム化を心がけるとします。
参考まで。