VBA publicで日付が呼び出せない
VBAにて、ユーザーフォーム上のテキストボックスに初期値として今日の日付が入力されており、さらにそれを任意で変更することも出来、最終的なテキストボックスの値を変数に格納するというマクロを作成しようとしています。
'テキストボックス2の初期値を今日の日付とする
Private Sub UserForm_Initialize()
TextBox2.Text = Format$(Date, "yyyy/mm/dd")
'テキストボックス2の値が日付かどうかチェック
Private Sub TextBox2_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If IsDate(TextBox2.Value) Then
DenpyouDate = TextBox2.Value
Else
TextBox2.Value = ""
MsgBox ("日付が不正です")
TextBox2.Text = Format$(Date, "yyyy/mm/dd")
End If
End Sub
'他のモジュールでdenpyoudateを使用し、指定のセルに和暦形式で入力する
Public DenpyouDate As Date
Sheets("伝票").Range("A10").Value = Format(DenpyouDate, "e")
Sheets("伝票").Range("C10").Value = Format(DenpyouDate, "m")
「ユーザーフォームのテキストボックスに初期値として日付を表示させ、その最終的な値を変数として格納、別のモジュールで呼び出してセルにセットする」というイメージです。
このマクロを実行した際、初期値である今日の日付を任意の日付に変更した場合は、問題なくそのままの値がセルにセットされるのですが、初期値のまま実行すると、その数値が反映されません。
ローカルウィンドウをチェックすると、ユーザーフォームの時点では、テキストボックスの初期値がきちんとdenpyoudateに格納されているのですが(例:2009/11/24)、それを別モジュールで呼び出した時は、denpyoudateの値が(#0:00:00#)になっており、これが原因だと考えています。
このエラーを回避し、初期値の場合でも値がきちんとセルにセットされるようにするには、どうしたらよいでしょうか?
お礼
早速アドバイスを頂き有難うございました。 勉強不足でした。