Version 6.0 です。
テキストボックスに入力された値の中に任意の文字があるかどうかを判断する関数というのはあるでしょうか?InStrとかでやってみたのですが、If文を繰り返すことになってしまい、見難い状況です。
2つのテキストボックスに年月を入力させ、
"yyyymm"、"yyyym"、"yyyy/mm"、"yyyy/m"
が入力可。入力した文字列に"/"があるかないかを判断し、あればそのままでIsDateでチェック。なければ、"/"を入れてIsDateでチェック、とさせたいです。
何か簡単なコードの書き方等あれば、ぜひ教えてください。分かり難いところがあれば、補足します。よろしくお願いします。
No.1ベストアンサー
- 回答日時:
こんにちは。
maruru01です。ちょっと長い気もしますが。
フォーム上に、Text1とCommand1があるとします。
Private Sub Command1_Click()
Dim temp As String
Dim p As Long
Dim pp As Long
Dim ppp As Long
temp = Text1.Text
p = InStr(1, temp, "/", vbTextCompare)
If p <> 5 And p <> 0 Then
MsgBox "区切り記号位置エラー"
Exit Sub
End If
pp = Len(temp)
temp = Replace(temp, "/", "", , , vbTextCompare)
ppp = Len(temp)
If pp - ppp > 1 Then
MsgBox "区切り記号位置エラー"
Exit Sub
End If
If Len(temp) < 5 Or Len(temp) > 6 Then
MsgBox "桁数エラー"
Exit Sub
End If
temp = Left(temp, 4) & "/" & Mid(temp, 5)
If IsDate(temp) Then
MsgBox "日付データ" & vbCrLf & Format(temp, "yyyy/mm")
Else
MsgBox "日付と認識出来ない"
End If
End Sub
あとは、適当に応用して下さい。
お礼が遅くなってしまって申し訳ありませんでした。
そして、早速の回答ありがとうございました。
やはりたくさんのIf文で判断していくことになるんですね。
教えていただいたコードを元に書いてみたいと思います。
ありがとうございました。
No.3
- 回答日時:
#2のものです。
ちょっとまちがってましたね。
修正版です。
Dim wstr As String
Dim wYear As Integer
Dim wMonth As Integer
Dim wDate() As String
wstr = txtDate.Text
'入力チェック
If IsNumeric(Replace(wstr, "/", "")) = False Then
MsgBox "入力ミス"
GoTo Error
End If
If Len(wstr) < 5 Then
MsgBox "入力ミス"
GoTo Error
End If
'年/月取得
'/が存在しない
If InStr(1, wstr, "/") = 0 Then
wYear = CInt(Mid(wstr, 1, 4))
wMonth = CInt(Mid(wstr, 5))
'/が存在する
Else
wDate = Split(wstr, "/")
If wDate(0) = "" Then
MsgBox "年入力ミス"
GoTo Error
End If
If wDate(1) = "" Then
MsgBox "月入力ミス"
GoTo Error
End If
wYear = CInt(wDate(0))
wMonth = CInt(wDate(1))
End If
If IsDate(wYear & "/" & wMonth) = False Then
MsgBox "年月入力ミス"
End If
二度もありがとうございます。
そして、お礼が遅くなってしまって申し訳ありません。
教えていただいたコードを元に書いてみたいと思います。
No.2
- 回答日時:
任意の箇所に"/"を入れるわけではないですが、年と月を分離することで、日付チェックが可能だと思います。
以下のコードを参考ください。
Dim wstr as String
Dim wYear as Integer
Dim wMonth as Integer
Dim wDate() as String
wstr = txtDate.text
'入力チェック
If IsNumeric(wstr) = False Then
MsgBox "入力ミス"
GoTo Error
End If
If Len(wstr) < 5 Then
MsgBox "入力ミス"
GoTo Error
End If
'年/月取得
'/が存在しない
If InStr(1, wstr, "/") = 0 Then
wYear = CInt(Mid(wstr, 1, 4))
wMonth = CInt(Mid(wstr, 5))
'/が存在する
Else
wDate = Split(wstr, "/")
wYear = CInt(wDate(0))
wMonth = CInt(wDate(1))
End If
If IsDate(wYear & "/" & wMonth) = False Then
MsgBox "年月入力ミス"
End If
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- Access(アクセス) Access の SetFocus について教えてください 5 2022/08/04 07:32
- Access(アクセス) capeofdragonと申します。 Access2016を使っております。 あるフォームがあり、テ 2 2022/09/09 13:18
- Visual Basic(VBA) ExcelVBAでユーザーフォームでテキストボックスなどからセルに連続して入力するコーディングの際の 2 2022/06/29 22:51
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
- Excel(エクセル) VBAで “:” を含むセルの特定 2 2023/05/11 16:30
- Excel(エクセル) エクセル365の関数。誕生日表記がおかしい 2 2022/10/17 18:52
- Excel(エクセル) エクセルでセルに何らかの文字が入力されたらそれを任意の数値として認識させる方法がしりたいです。 3 2023/03/16 20:19
- Visual Basic(VBA) ユーザーフォームで銀行に対応した支店コードの入力ができません Sheet1のA列に銀行名、B列に銀行 5 2022/07/28 17:50
- Visual Basic(VBA) VBA 重複チェック後に値をワークシートに転記する方法を教えてください。 1 2023/03/19 12:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
初歩的な事だと思います。 Sub...
-
エクセルVBA テキストボックス...
-
指定した演算を実施の結果を表...
-
数字以外の入力をエラーにする...
-
テキストボックスの番号を使っ...
-
excel vba でユーザーフォーム...
-
VBAでInputBoxの再入力をさせる...
-
教えて!全角文字「μ」の半角
-
TETXの入力制限について色々と…
-
半角英数のみ入力可能
-
入力フォームの値をQRコードで...
-
Windowsのアプリ開発ってなんの...
-
VBAのユーザーフォーム上で名簿...
-
問い合わせフォームの作り方
-
is_numeric関数について
-
VBA R1C1形式で変数の入力について
-
c#でTextBoxの入力制限
-
入力フォームへ、データを自動...
-
UserFormにテキストボックスを...
-
DataGridView 列ごとの入力制限
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA テキストボックス...
-
テキストボックスの番号を使っ...
-
初歩的な事だと思います。 Sub...
-
数字以外の入力をエラーにする...
-
EXCEL VBA で指定した範囲に入...
-
Excel-VBAでInputBox+Pulldown...
-
入力フォームの値をQRコードで...
-
VBAの質問になります メッセー...
-
c#でTextBoxの入力制限
-
VBAで質問があります
-
教えて!全角文字「μ」の半角
-
VBAでInputBoxの再入力をさせる...
-
excel vba でユーザーフォーム...
-
TextBoxから数字が文字...
-
エディットボックスの入力制限...
-
accessで該当するレコードがな...
-
DataGridViewの桁数制限に関して
-
VBA R1C1形式で変数の入力について
-
「イ分」・・・フンという文字...
-
Windowsのアプリ開発ってなんの...
おすすめ情報