Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3753 / 13645 ツリー ←次へ | 前へ→

【60361】日付? かるお^えいと 09/2/13(金) 8:56 質問[未読]
【60362】Re:日付? マクロマン 09/2/13(金) 10:06 発言[未読]
【60363】Re:日付? マクロマン 09/2/13(金) 10:17 発言[未読]
【60364】Re:日付? マクロマン 09/2/13(金) 10:24 発言[未読]

【60361】日付?
質問  かるお^えいと  - 09/2/13(金) 8:56 -

引用なし
パスワード
   VBAで用意されたテキストボックスの中身は
必ず日付しか受け付けないようにするにはどのような方法がありますか?

エクセルのセルであれば書式設定で設定できますが
VBAにもそのようなお役立ち設定はあるのでしょうか?


例:テキストボックスに0205と入力すると
自動的に2009/02/05となるのが好ましい

【60362】Re:日付?
発言  マクロマン  - 09/2/13(金) 10:06 -

引用なし
パスワード
   Exitイベントを使って↓のようにしてはいかがでしょう?

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Me.TextBox1.Value = CDate(Me.TextBox1.Value)
End Sub

【60363】Re:日付?
発言  マクロマン  - 09/2/13(金) 10:17 -

引用なし
パスワード
   私が提示した方法では
2/5
のように入力しないとダメですね。
失礼しました。

【60364】Re:日付?
発言  マクロマン  - 09/2/13(金) 10:24 -

引用なし
パスワード
   DateSerial関数などで日付けデータに変換するしかないと思います。
ただし、入力する値をある程度は(かならず4桁で入力するなど)、規制する必要があります。

Left
Mid
Right
などを組み合わせて入力した文字から月、日を切り出せたらDateSerial関数など
で日付けデータに変換できます。

でもアクセスがあるならカレンダーコントロールを使うとか、アクセスがなくても
カレンダーコントロールのようなものを作るのはさほど難しいことではないと思います。

リストボックスで月を選択したら日のリストが表示されてそこから選択できるように
する、という方法もあります。

でないと、入力ミスで
0230
としたときにどう処理するのか、などの問題が出てきます。

3753 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free