OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

AccessVBAで教えて下さい。

  • すぐに回答を!
  • 質問No.119752
  • 閲覧数153
  • ありがとう数3
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 50% (3/6)

文字のチェックをしたいのですが、例えばtxtboxに「a」と入力したら
msgboxで禁止文字です。ってエラーが出るようにするにはどうしたら
いいのでしょうか?VBA初心者なのでやさしく教えて下さい。
お願いします。
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.3
レベル10

ベストアンサー率 34% (46/135)

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

お礼率 50% (3/6)

遅くなりました。
何度もありがとうございました。
おかげさまで何とか出来ました。また何かわからない
ことがありましたらお願いします。 では!
投稿日時 - 2001-08-21 14:17:44
-PR-
-PR-

その他の回答 (全3件)

  • 回答No.1
レベル10

ベストアンサー率 34% (46/135)

初めましてhirochan2001さん ちょっと質問の意味が理解できませんが テキストBOXに入力された文字すべてが対象になるなら if txtbox名="a" Then   MsgBox "禁止文字です" End If でいいと思いますが、テキストBOXに入力された文字のスペルの中で 禁止文字があったらエラーを出すという事であれば、InStr ...続きを読む
初めましてhirochan2001さん
ちょっと質問の意味が理解できませんが
テキストBOXに入力された文字すべてが対象になるなら

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

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

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


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

お礼率 50% (3/6)

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

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


  • 回答No.2
レベル8

ベストアンサー率 51% (21/41)

そのテキストボックスのKeyPressイベントで 入力された文字のアスキーコードが取れますので そのコードで確認して下さい。 下記の例では AからFと0から9以外の文字が入力された時 音をだして入力をキャンセルするものです。 Private Sub txtMsgId_KeyPress(KeyAscii As Integer)  KeyAscii = ifHexChar(KeyAscii ...続きを読む
そのテキストボックスの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

お礼率 50% (3/6)

遅くなってごめんなさい!

↑すごいですね私もっと勉強しなきゃって気にさせられました。
↑早速使わせて頂きました。nakashiさんはどの位勉強してここまで
↑プログラム出来るようになったのですか?教えて下さい。(^O^)/

それと私の説明の仕方が悪かったみたいです。ゴメンナサイ!
TBLはメモ型で作っています。
文字を入力した際に半角のローマ字や全角のスペースを
禁止文字にしたいのですが、できれば禁止文字を増やしたり
減らしたり出来るようにしたいのです。
ぜひもう一度教えて下さい。お願いします。
投稿日時 - 2001-08-17 21:05:22
  • 回答No.4
レベル8

ベストアンサー率 51% (21/41)

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

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

お礼率 50% (3/6)

遅くなりました。
おかげさまで出来ました。
また何かわからない時はお願いします。 では!
投稿日時 - 2001-08-21 14:20:23
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ