- ベストアンサー
AccessVBAで教えて下さい。
文字のチェックをしたいのですが、例えばtxtboxに「a」と入力したら msgboxで禁止文字です。ってエラーが出るようにするにはどうしたら いいのでしょうか?VBA初心者なのでやさしく教えて下さい。 お願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ふたたびnekです。 補足に回答いたします。 >文字を入力した際に半角のローマ字や全角のスペースを >禁止文字にしたいのですが、できれば禁止文字を増やしたり >減らしたり出来るようにしたいのです。 先ほど、回答したInStrを使用すればこれもできます。 先ほどとは、検索する方とされる方が逆になります。 下記のIf InStr("ABCDEFGHIJKLMNOPQRSTUVWXYZ", Mid(txtbox名, I, 1)) <> 0 Thenを見てください。 この文のダブルコーテーション内の文字があれば、メッセージボックスが表示されます。 言い換えれば、このダブルコーテーション内の文字を増やしたり減らしたりすれば hirochan2001さんの意図する事はできます。 尚、スペースは ' ←シングルコーテーションで囲んでくださいね。 ただし、この方法では半角全角の区別はできません。 半角全角はテキストボックスのプロパティ「IME入力モード」等で規制しましょう。 サンプルプログラム Dim I As Integer Dim MsgFlg As Boolean '禁止文字有無フラグ MsgFlg = True For I = 1 To Len(txtbox名) If InStr("ABCDEFGHIJKLMNOPQRSTUVWXYZ", Mid(txtbox名, I, 1)) <> 0 Then MsgFlg = False Exit For End If Next I If MsgFlg = False Then MsgBox "禁止文字" End If
その他の回答 (3)
- nakashi
- ベストアンサー率51% (21/41)
下記のURL 「textボックスに全角のみ入力にする方法」 のスレッドが参考になりませんか?
お礼
遅くなりました。 おかげさまで出来ました。 また何かわからない時はお願いします。 では!
- nakashi
- ベストアンサー率51% (21/41)
そのテキストボックスのKeyPressイベントで 入力された文字のアスキーコードが取れますので そのコードで確認して下さい。 下記の例では AからFと0から9以外の文字が入力された時 音をだして入力をキャンセルするものです。 Private Sub txtMsgId_KeyPress(KeyAscii As Integer) KeyAscii = ifHexChar(KeyAscii) End Sub Public Function ifHexChar(KeyAscii As Integer) As Integer ifHexChar = KeyAscii Select Case KeyAscii Case 3, 22: Exit Function ' Ctrl C Ctrl V Case Asc(vbCr), Asc(vbBack): Exit Function Case Asc("a") To Asc("f"): ifHexChar = KeyAscii - &H20: Exit Function Case Asc("A") To Asc("F"): Exit Function Case Asc("0") To Asc("9"): Exit Function Case Else: ifHexChar = 0: Beep End Select End Function
補足
遅くなってごめんなさい! ↑すごいですね私もっと勉強しなきゃって気にさせられました。 ↑早速使わせて頂きました。nakashiさんはどの位勉強してここまで ↑プログラム出来るようになったのですか?教えて下さい。(^O^)/ それと私の説明の仕方が悪かったみたいです。ゴメンナサイ! TBLはメモ型で作っています。 文字を入力した際に半角のローマ字や全角のスペースを 禁止文字にしたいのですが、できれば禁止文字を増やしたり 減らしたり出来るようにしたいのです。 ぜひもう一度教えて下さい。お願いします。
- nek
- ベストアンサー率34% (46/135)
初めましてhirochan2001さん ちょっと質問の意味が理解できませんが テキストBOXに入力された文字すべてが対象になるなら if txtbox名="a" Then MsgBox "禁止文字です" End If でいいと思いますが、テキストBOXに入力された文字のスペルの中で 禁止文字があったらエラーを出すという事であれば、InStrを使えばできます。 下記の様なプログラムを、テキストBOXのAfterUpdateか コマンドボタンのClickイベントに入れてみてください。 If InStr(txtbox名, "a") <> 0 Then MsgBox "禁止文字です" End If 動作確認はしてませんので、あしからず。 わからなかったら補足願います。
補足
遅くなってごめんなさい! ↑とてもわかり易い説明で助かりました。 私の説明の仕方が悪かったみたいです。 TBLはメモ型で作っています。 文字を入力した際に半角のローマ字や全角のスペースを 禁止文字にしたいのですが、できれば禁止文字を増やしたり 減らしたり出来るようにしたいのです。 もう一度教えて下さい。お願いします。
お礼
遅くなりました。 何度もありがとうございました。 おかげさまで何とか出来ました。また何かわからない ことがありましたらお願いします。 では!