Ответ 1
Если пользователь нажимает кнопку "Отмена", возвращается строка нулевой длины. Вы не можете отличить это от ввода пустой строки. Однако вы можете создать свой собственный класс InputBox...
РЕДАКТИРОВАТЬ, чтобы правильно различать пустую строку и отмену, в соответствии с этим ответом.
Ваш пример
Private Sub test()
Dim result As String
result = InputBox("Enter Date MM/DD/YYY", "Date Confirmation", Now)
If StrPtr(result) = 0 Then
MsgBox ("User canceled!")
ElseIf value = vbNullString Then
MsgBox ("User didn't enter anything!")
Else
MsgBox ("User entered " & result)
End If
End Sub
Скажет пользователю, что он отменил, когда они удаляют строку по умолчанию, или они нажимают кнопку отмены.
См. Http://msdn.microsoft.com/en-us/library/6z0ak68w(v=vs.90).aspx