• ベストアンサー

大小・全半角の禁止文字?

Access97を使用しております。 現在↓のような形で禁止文字を設定しておりますが、大英字全角のAでも 小英字半角のaでも全て禁止文字として認識されてしまいます。 >>たぶんUnicodeのせいだと・・・(泣) これを例えば小半角英字の「a」のみを禁止文字として認識させるにはどの ような方法があるのでしょうか?ご教授お願い致します。   Dim R As Integer Dim strChk As String Dim strMoji As String '禁止文字チェック strMoji = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz "   Me.txtMsg = "" For R = 1 To Len(Me.内容) strChk = Mid$(Me.内容, R, 1) If InStr(strMoji, strChk) <> 0 Then Me.txtMsg = "入力禁止文字「 " & strChk & " 」が使用されています。" Exit Sub Exit For End If Next R

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

  • ベストアンサー
  • paz777
  • ベストアンサー率47% (77/163)
回答No.3

まだ解決していないようなので回答します。 InStr関数で色々と試してみたのですが、思った結果が得られないので StrComp関数にしてみました。 以下は、こちらでテストしたモジュールです。 ---------------------------------------------------------------------- Public Function MOJI_TEST(H_txt As String) Dim R As Integer Dim R1 As Integer Dim strChk As String Dim strMoji As String Dim txtMsg As String ' 禁止文字チェック strMoji = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz " txtMsg = "" For R = 1 To Len(H_txt) strChk = Mid$(H_txt, R, 1) ' For R1 = 1 To Len(strMoji) If StrComp(StrConv(Mid$(strMoji, R1, 1), vbFromUnicode), _ StrConv(strChk, vbFromUnicode), vbBinaryCompare) = 0 Then txtMsg = "入力禁止文字「 " & strChk & " 」が使用されています。" MsgBox txtMsg Exit Function End If Next R1 ' Next R ' End Function ---------------------------------------------------------------------- 後は適当に直して下さい。 ではでは・・・

pooh_200x
質問者

お礼

返答が遅れすみません! 実は事故って入院してました。(泣) まだ確認は出来てないのですが、一旦ポイントだけ入れさせて頂きます。 申し訳ありませんでした。

その他の回答 (2)

  • SpeedKing
  • ベストアンサー率50% (6/12)
回答No.2

Unicodeで比較するっていうのは如何でしょうか。 strChk = Mid$(Me.内容, R, 1) strMoji2 = Mid$(strMoji、InStr(strMoji, strChk),1) If AscW(strMoji2) = AscW(strChk) Then StrConvでANSIに変換して比較することもできると思いますが、Unicodeでも比較できるのではと思いました。 でも試していないので自信があるわけではありません。ゴメンナサイ。

pooh_200x
質問者

お礼

返答が遅れすみません! 実は事故って入院してました。(泣) まだ確認は出来てないのですが、一旦ポイントだけ入れさせて頂きます。 申し訳ありませんでした。

  • baha
  • ベストアンサー率38% (16/42)
回答No.1

こんにちは。 StrConv関数を使用して、UNICODEからANSI形式に変換してから チェックすればどうですか? 詳しくはAccessのHelp参照ください。

pooh_200x
質問者

お礼

返答が遅れすみません! 実は事故って入院してました。(泣) まだ確認は出来てないのですが、一旦ポイントだけ入れさせて頂きます。 申し訳ありませんでした。

関連するQ&A