こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excel VBA テキストボックスに当日の日付

Excel 2013において、VBAで入力フォームを作成中の初心者です。
入力フォームの中に日付の項目があり、テキストボックスに手入力しています。
そのテキストボックスに当日の日付を自動で表示させたく、ネットで調べ試しましたが、うまくいきません。

やりたいこととしては、テキストボックスに今日の日付を自動的に和暦で表示させ、その日付を変更する場合には、「2016-12-03」などと入力後、和暦に自動的に変換して表示させたいのです。

手入力において、「2016-12-03」と入力後、自動的に和暦に変換するコードはネットで見つけることができ、うまくいったのですが、当日の日付を自動的に表示させる方法がわからずにおります。

日付を手入力後、和暦で表示させるコードは以下のようにしてあります。
Private Sub textbox1_AfterUpdate()
With Me.textbox1
If IsDate(.Value) Then
.Value = Format(.Value, "ggge年m月d日")
End If
End With
End Sub

どなたか、教えていただけると助かります。
よろしくお願いいたします。

投稿日時 - 2016-12-03 14:52:52

QNo.9263349

困ってます

質問者が選んだベストアンサー

 ユーザーフォームをアクティブにした際に自動的にその日の日付を和暦で表示させるのであれば、

Private Sub UserForm_Activate()

Me.TextBox1.Value = Format(Date, "ggge年m月d日")

End Sub

になります。
 もし、「ユーザーフォームをアクティブにした時の日付」ではなく、「ユーザーフォームを閉じる時の日付」にしたい場合には、

Private Sub UserForm_Activate()

となっている箇所を

Private Sub UserForm_QueryClose

に変更して下さい。
 同様に、、「ユーザーフォームをアクティブにした時の日付」ではなく、「テキストボックスをダブルクリックした時の日付」にしたい場合には、

Private Sub UserForm_Activate()

となっている箇所を

Private Sub TextBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

に変更して下さい。

投稿日時 - 2016-12-03 15:28:59

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

フォームのコードに
Private Sub UserForm_Initialize()
Me.TextBox1.Text = Format(Now(), "ggge年mm月dd日")
End Sub
を追加する

投稿日時 - 2016-12-03 15:19:06

ANo.1

strDate = cdate(now)
Msgbox strDate

投稿日時 - 2016-12-03 15:15:16

あなたにオススメの質問