|
▼Blue さん:
返事がおそくなりました。
-------------------------------------------------------------------------
'主プロで日付を入力させる
UserForm1.Show
-------------------------------------------------------------------------
'ユーザフォームでボタンの定義をする
Private Sub CommandButton1_Click()
'sheet1のd1に日付を入れる
Sheets("sheet1").Select
Range("d1").Select
Selection.ClearContents
Range("d1") = UserForm1.TextBox1.Text
Unload Me
End Sub
-------------------------------------------------------------------------
'キャンセルボタンを押したらsheet2をクリアする
Private Sub CommandButton2_Click()
Unload Me
Sheets("sheet2").Select
Cells.Select
Selection.ClearContents
Rows("3:65536").Select
Selection.Delete Shift:=xlUp
Range("a3").Select
End
End Sub
-------------------------------------------------------------------------
'入力値のチェックをする
Private Sub kijyunbi()
'日付の妥当性のチェック
If Not IsDate(Range("d1")) Then
MsgBox "有効な日付ではありません。再度入力して下さい。"
UserForm1.Show
End If
'文字数が半角10文字かチェック
If Len(Range("d1")) <> 10 Then
MsgBox ("日付を yyyy/mm/dd の形式で入力して下さい")
UserForm1.Show
End If
' 形式チェック
If Not Range("d1") Like "####/##/##" Then
MsgBox "日付のフォーマットではありません。再度入力して下さい。"
UserForm1.Show
End If
'日付に変換できる値かチェック
If IsDate(Range("d1")) <> True Then
MsgBox ("正しい日付を入力して下さい")
UserForm1.Show
End If
End Sub
-------------------------------------------------------------------------
上のコードだと次のような問題がでます。
1.「123」のように入力しても「1900/5/2」のようにsheet1のd1に入力されてしまう。
2.「vba」と5回入力すると、チェックをすり抜け、型が一致しないと言われる。
チェックを繰り返したいのに、繰り返しになっていない。
3.「123456789123456789123456789」と入力するとオーバーフローする。
ちょっと自分ではどうすることも出来なくて・・・。
すいませんが、どなたかお願いします。
|
|