プロが教えるわが家の防犯対策術!

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

A 回答 (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
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/08/21 14:17

下記のURL



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

参考URL:http://dev.sfdata.ne.jp/VB/htdocs/msg09789.html
    • good
    • 0
この回答へのお礼

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

お礼日時:2001/08/21 14:20

そのテキストボックスの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はメモ型で作っています。
文字を入力した際に半角のローマ字や全角のスペースを
禁止文字にしたいのですが、できれば禁止文字を増やしたり
減らしたり出来るようにしたいのです。
ぜひもう一度教えて下さい。お願いします。

補足日時:2001/08/17 21:05
    • good
    • 0

初めましてhirochan2001さん


ちょっと質問の意味が理解できませんが
テキストBOXに入力された文字すべてが対象になるなら

if txtbox名="a" Then
  MsgBox "禁止文字です"
End If

でいいと思いますが、テキストBOXに入力された文字のスペルの中で
禁止文字があったらエラーを出すという事であれば、InStrを使えばできます。
下記の様なプログラムを、テキストBOXのAfterUpdateか
コマンドボタンのClickイベントに入れてみてください。

If InStr(txtbox名, "a") <> 0 Then
  MsgBox "禁止文字です"
End If


動作確認はしてませんので、あしからず。
わからなかったら補足願います。

この回答への補足

遅くなってごめんなさい!
↑とてもわかり易い説明で助かりました。

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

補足日時:2001/08/17 20:56
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!