重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

VBで画面を作っていて、ちょっと疑問にブチ当たりました(汗)

とあるテキストボックスがあり、入力された内容についてチェックを行いたいんですが・・・。

・全角ひらがなで入力されているかどうかをチェック。
・全角カタカナはOK
・全角スペースもOK

上記以外の漢字や数字・記号はエラー(メッセージ表示)にしたいのですが、
それっぽい関数も見当たらないため、どのようにしたらよいのか悩んでいます。
なお、未入力のチェックは別処理にて実施済みです。

何か良い方法があれば教えてくださいm(_ _)m

A 回答 (2件)

こんにちは。

maruru01です。

強引に関数を作ってみました。
1文字でも全角ひらがな・カタカナ・スペース以外があった場合にFalseを返します。


Private Function myCheck(Str As String) As Boolean

  Dim temp As String
  Dim i As Long

  myCheck = True

  For i = 1 To Len(Str)
    temp = Mid(Str, i, 1)
    '全角チェック
    If temp <> StrConv(temp, vbWide) Then
      myCheck = False
      Exit Function
    End If
    'ひらがな、カタカナスペースチェック
    If (temp = StrConv(temp, vbHiragana)) And (temp = StrConv(temp, vbKatakana)) And (temp <> " ") Then
      myCheck = False
      Exit Function
    End If
  Next i

End Function
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
StrConvを利用して関数化すればよかったんですねぇ^^;
さっそく組み込んで動作確認してみたところ完璧でした。

更に有効活用できるよう、もう少し勉強してみようと思います( ..)ヾ

お礼日時:2003/07/24 13:11

テキストボックスの文字列を取得して、


文字列の長さを取得する。

最初の文字から1文字ずつ切り出して、
それぞれの文字のコードが「ひらがな」のコード範囲に収まっているかチェック
これを最後の文字までループして繰り返す

ひらがな以外の文字があったら、
フラグをたてるなり、ループを抜けるなりして、警告メッセージを表示

という手順になるでしょうか。
あとはこれを別ルーチンにして呼び出す形にすれば、
他のコントロールからも使えてもっといいですね。
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
#1の方に回答していただいたように関数を作ればよいみたいです。

確かに、他のコントロールでも使えるようにした方が
今後の展開としても都合がよさそうなので、
そのようにしていきたいと思います。

どうもありがとうございました。

お礼日時:2003/07/24 13:12

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

今、見られている記事はコレ!