• ベストアンサー

AccessVBAで教えて下さい。

文字のチェックをしたいのですが、例えばtxtboxに「a」と入力したら msgboxで禁止文字です。ってエラーが出るようにするにはどうしたら いいのでしょうか?VBA初心者なのでやさしく教えて下さい。 お願いします。

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

  • ベストアンサー
  • nek
  • ベストアンサー率34% (46/135)
回答No.3

ふたたび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

hirochan2001
質問者

お礼

遅くなりました。 何度もありがとうございました。 おかげさまで何とか出来ました。また何かわからない ことがありましたらお願いします。 では!

その他の回答 (3)

  • nakashi
  • ベストアンサー率51% (21/41)
回答No.4

下記のURL 「textボックスに全角のみ入力にする方法」 のスレッドが参考になりませんか?

参考URL:
http://dev.sfdata.ne.jp/VB/htdocs/msg09789.html
hirochan2001
質問者

お礼

遅くなりました。 おかげさまで出来ました。 また何かわからない時はお願いします。 では!

  • nakashi
  • ベストアンサー率51% (21/41)
回答No.2

そのテキストボックスの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

hirochan2001
質問者

補足

遅くなってごめんなさい! ↑すごいですね私もっと勉強しなきゃって気にさせられました。 ↑早速使わせて頂きました。nakashiさんはどの位勉強してここまで ↑プログラム出来るようになったのですか?教えて下さい。(^O^)/ それと私の説明の仕方が悪かったみたいです。ゴメンナサイ! TBLはメモ型で作っています。 文字を入力した際に半角のローマ字や全角のスペースを 禁止文字にしたいのですが、できれば禁止文字を増やしたり 減らしたり出来るようにしたいのです。 ぜひもう一度教えて下さい。お願いします。

  • nek
  • ベストアンサー率34% (46/135)
回答No.1

初めましてhirochan2001さん ちょっと質問の意味が理解できませんが テキストBOXに入力された文字すべてが対象になるなら if txtbox名="a" Then   MsgBox "禁止文字です" End If でいいと思いますが、テキストBOXに入力された文字のスペルの中で 禁止文字があったらエラーを出すという事であれば、InStrを使えばできます。 下記の様なプログラムを、テキストBOXのAfterUpdateか コマンドボタンのClickイベントに入れてみてください。 If InStr(txtbox名, "a") <> 0 Then   MsgBox "禁止文字です" End If 動作確認はしてませんので、あしからず。 わからなかったら補足願います。

hirochan2001
質問者

補足

遅くなってごめんなさい! ↑とてもわかり易い説明で助かりました。 私の説明の仕方が悪かったみたいです。 TBLはメモ型で作っています。 文字を入力した際に半角のローマ字や全角のスペースを 禁止文字にしたいのですが、できれば禁止文字を増やしたり 減らしたり出来るようにしたいのです。 もう一度教えて下さい。お願いします。

関連するQ&A

専門家に質問してみよう