• ベストアンサー

半角数字かどうかの判定

いつもお世話になっております。 VB6を使っているのですが、文字列が半角数字かどうかの 判定をしたいのですが、何かいい方法はないでしょうか? どうかよろしくお願いいたします。

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

  • ベストアンサー
回答No.2

#1さんの方法は半角“文字”の判定方法で、半角“数字”ではないかと・・・ 最も単純に考えて、1文字ずつ文字コードを調べる方法です。関数にしてみました。 ' 文字列が半角数字であるかを判定 ' [引数] ' strValue ... 検証する文字列 ' [戻り値] ' True .... 全て半角数字 ' False ... 半角数字以外が含まれている Private Function CheckNarrowNum(strValue As String) As Boolean Dim strChr() As Byte, i As Long '文字列をバイト配列に変換 strChr = strValue 'バイト配列を1つ置きに調べる(Unicodeのため) For i = 0 To UBound(strChr) Step 2 '文字コードが 0 ~ 9 の場合 If strChr(i) >= 48 And strChr(i) <= 57 And strChr(i + 1) = 0 Then 'それ以外の場合 Else '半角数字以外の文字なのでFalseを返す CheckNarrowNum = False Exit Function End If Next '全て半角数字なのでTrueを返す CheckNarrowNum = True End Function もっと効率のいい方法があるような気もしますが・・・。 Replace関数で0~9を全部空白に置き換えて、文字列がなくなるかどうかを調べる、という方法も考えましたけど、配列を1回だけループさせる方が速いと思ったのでコーディングしてません。

sansan33311
質問者

お礼

ご教示ありがとうございました。 参考にさせていただきます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.3

お世話になります。 参考 URL が参考になると思います。 個人的には RegExp をオススメしたいです。

参考URL:
http://homepage1.nifty.com/rucio/main/technique/InputChk2.htm
sansan33311
質問者

お礼

ご回答ありがとうございました。 今回はしたの方に教えていただいたコードを 使いたいと思います。 でも、RegExpは全く知らなかったので興味深く 見させていただきました。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

参考にしてください Sub aaa(ByVal str As String) ' Dim str As String ' str = "アイウエオ" If LenB(StrConv(str, vbFromUnicode)) = Len(str) Then MsgBox ("全て半角文字です") Else MsgBox ("全角文字が含まれています") End If End Sub

sansan33311
質問者

お礼

わざわざご回答ありがとうございました。 大変参考になりました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 正整数の半角数字かどうか判定する

    VB.NET2008を使っているのですが、 TextBox1に入力された文字が正整数の半角数字かどうかの 判定をしたいのですが、何かいい方法はないでしょうか? どなたかよろしくお願いします。

  • InputBoxの入力値を半角数字のみと限定する方法

    Excel_VBAで、InputBoxにより半角数字の入力を求めています。入力値が半角数字でない判定をするのに、最も容易な方法はありませんか?"CInt"だと文字列ではダメですし、悩んでおります。 InputBoxに、半角数字のみと限定するようなオプションがあれば良いのですが・・・。

  • VB2008で全角半角の判定

    VB2008で全角半角の判定 VB6 では下記のようにして判定していましたが、VB2008では どのようにすればよいのかお教えください。  dim moji as string dim zhN as integer  zhN = LenB(StrConv(moji, vbFromUnicode)) mojiには1文字格納されており、  半角なら zhN = 1 全角なら zhN = 2 となる。  これをVB2008で実現する方法がわかりません。  よろしくお願いします。

  • 文字の判定について

    はじめまして。 vba初心者でして、とても困っているのです。 セルの値が数字かどうかの判定はどうやら IsNumeric で出来るようですが、 英数字かどうかの判定方法がわかりません! (半角の数字とアルファベットのみの文字列かどうか) ご存知の方いらっしゃったら教えてください! お願いします。

  • 文字列から半角数字以外を除去したい

    いつもお世話になっております。 現在、SQLServer2000(SP4)、Visual Basic6.0(SP5)を使って開発しています。 ある文字列から、半角数字以外を除去したいのですが、対象データの数が多いので、ループさせたりして、時間が掛かる処理は避けたいと思っています。 なるべく簡単な操作で文字列から半角数字以外を除去する方法を御存知でしたら教えてください。 【やりたい事の例】 ・0120-123-123 → 0120123123 ・a123456 → 123456 以上、宜しくお願いします。

  • 全角データの存在判定

    いつもお世話になります。 さて標記の件、データの中に全角文字が入っているかどうかの判定をしたいと思っています。 過去の質問からクエリでLen(文字列)<>LanB(文字列)を作ってみたんですが、半角文字しかないのにLanBに倍の数字が入ります。 office2000だからだと思いますが何か方法が在りませんでしょうか。 WinXP Office2000PROを使用しています。 以上、宜しくお願いいたします。

  • Excel2000で置換>全角数字を半角数字へ

    表記置換方法についてご教授ください。 ある列に文字列と全角数字が混在したセルが数百行あります これを半角数字に置換したいのですが希望通りにできません。よい方法をご存知の方ご教授願います 変換した内容 (TEL)03-9999-9999  ⇒ 03-9999-9999 半角 全角数字(実際には電話番号)  半角数字  やったこと 置換機能にてまず行頭の(TEL) を削除 置換にて0(全角)→0(半角) これを0~9まで10回繰り返し これを一度の置換で実行させたい 置換前の文字指定と置換後の文字を正しく指定する方法はないでしょうか?

  • vb6でテキスト入力の数字を判定したい。

    お世話になります。 XPでvb6を使ってプログラムを作っています。 テキスト形式で入力された文字が数字の0から15までの数字かを判断したいのですが IsNumeric関数で数字か数字以外の文字かを判定した後、 VAL関数で判定とプログラミングしたところ 入力された値が”1d1”だと IsNumeric関数はTrue、VAL関数は10になり 正しい入力と判断されてしまします。 何かいい方法があればご教授頂きたく宜しくお願いします。 以上です。

  • 数字か文字列かを判定する関数

     JAVAの初心者です、宜しくお願いします。     テキストボックスに入力された値を、数字か文字列かを判定する関数ってありますか、VBでは「isNumeric」とかがあるのですが、JAVAではヒットしませんでした。  どこからどのように調べるのでしょうか。  いいサイトがあれば教えて下さい。

    • ベストアンサー
    • Java
  • エクセルのセル内の数字を一発で(または、2発、3発)で半角にする方法

    エクセルで、 パソコン初心者が入力した半角や全角交じりの数字を、 簡単に、列ごと行ごとに半角(全角)数字に揃える方法をご存知の方おられましたら、教えてください。 元々のセルの書式設定は、文字列にしてあります。 (ゼロで始まる数字もあるため。)

喧嘩別れ モラハラ傾向
このQ&Aのポイント
  • 彼氏との喧嘩別れが繰り返されてきた
  • 彼のモラハラ的な行動が問題
  • 連絡が途絶え、別れを考えているが諦めたくない
回答を見る