• ベストアンサー

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

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

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

  • ベストアンサー
noname#44015
noname#44015
回答No.3

WinXP、IE6、Excel2003では以下のコードで動きました. 正規表現の意味はいろいろサイトをめぐってみてください. Set regEx = CreateObject("VBScript.RegExp") regEx.Pattern = "^\d+$" strVal = InputBox("何か入力して下さい.") If regEx.Test(strVal) Then MsgBox ("OK") Else MsgBox ("NG") End If

sanakazu
質問者

お礼

有難うございました、無事思い通りの動作が確認できました。一言でVBAと言っても奥が深いものです・・・。 度重なる回答に感謝いたします。今後も精進して、次は皆様のお力になれるよう努めます。

その他の回答 (3)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんにちは。 初歩的なことだと思いますが、InputBox メソッドにすればよいです。 数字の全角半角は気にしなくてよいです。 Sub TestSample() Dim Ret As Variant  Ret = Application.InputBox("数字を入力してください。", Type:=1)  If VarType(Ret) = vbBoolean Or Ret = "" Then Exit Sub    MsgBox "入力は " & Ret & " Ret + 2 =" & Ret + 2 End Sub

sanakazu
質問者

お礼

アドバイスをありがとうございます。とりあえず解決しましたので、このような手段もあると言うことを頭の片隅にでも留めおき、次回の際に参考とさせていただきます。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.2

InputBoxの内容が数値であるなら全角であっても Cintでいいと思いますが、変換できる値は、-32,768 ~ 32,767 です。 CLng,CSng,CDblの方が桁数は使えますが...

sanakazu
質問者

お礼

アドバイスをありがとうございます。 入力値が全角数字でもそう支障はないのですが、誤って半角英字・かな文字が入力されている可能性を考慮したための判定です。半角数字としたために誤解を招いてしまいましたね、すみません。

noname#44015
noname#44015
回答No.1

正規表現を使ってみてはいかがでしょう?

参考URL:
http://officetanaka.net/excel/vba/tips/tips38.htm
sanakazu
質問者

お礼

早速の回答をありがとうございます、参考URLに従ってトライしましたが上手くいきません。 それ以前に、理解不足のため疑問があります。Sample2のREとreMatchの関係は? 私の希望としては、下記msgの内容が半角数字である判定ができれば良いのですが・・・。  Do Until msg_flg = True   msg = InputBox("数値入力", " 1-9より入力してください ")   If msg <> "" Then     cc = msg     msg_flg = True   End If  Loop

関連するQ&A

  • 半角数字かどうかの判定

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

  • セルの入力制限(半角数字と半角空白限定)

    今更ですが、あるセルに 12345 56789 10111 と半角数字(文字列)と半角空白のみの入力制限をしたいと思います。 すみません、調べたんだけど以外に分かりませんでした。 できればコピペした際も常に半角数字&空白の条件が引き継げると 幸いです。

  • 1つのセルに入力する半角数字の数

    1つのセルに 20桁のの数字を入力したいのですが、15文字以上になると入力できません、 1.23457E+18 と表示されます。 これを、20桁の文字列でなく半角数字で入力したいのですが方法はありませんか。

  • EXCELのVBAで半角数字を全角数字へ変換

    EXCEL2007を使用しております。 VBAにて半角数字を全角数字へ変換したいと思っております。 最初にStrconv (cells (i 、j ) 、vbwide ) としていました。セルには数字が入っていますが、これで実行しても半角のままでした。 これは数字を文字列に変えないとだめなのでは思い、Cstr ( cells ( i 、j ) としてそれをstring として定義した項目へ送ってからStrconv で変えようとしたのですが、これでも半角のままでした。 何か勘違いをしているように思うのですが、アドバイスいただければ幸いです。 宜しくお願い致します。

  • エクセルのセル内の数字を一発で(または、2発、3発)で半角にする方法

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

  • エクセルVBA InputBoxで入力欄を*****

    VBAのInputBoxでパスワードを入力させるようにしているのですが、入力欄に入れた文字は当然ながらそのまま表示されます。 これをいかにもパスワードの入力のように入力数字を****と表示させることはできないものでしょうか?

  • VBAのTextBoxに半角数字のみ入力したい

    VBAでTextBox2には半角数字のみしか入力できないように制御したいのですが、どうしたらよいのでしょうか。 TextBoxのプロパティでIMEModeを「8-fmIMEModeAlpha」というのにしたのですが、半角英字も入力できてしまいます。 どなたかよい方法をご教授ください。

  • アクセス:Inputboxへの文字列補正について

    Inputboxへの入力後エラーを防止するために、(1)~(3)の条件を指定したいのです。 (1)数値(半角)以外を入力できないようにしたい (2)文字列中もしくは文字列前後に空白が含まれる場合は削除したい (3)全角で数値を入力した場合は、半角に補正されるように指定したい (4)文字が入力されたら、「数字を入力してください」というメッセージをいれる 一気に色々な補正をかけようとしたら、エラーになってしまいました。 うまく関数を組み立てることができません。。。 よろしくお願いいたしますm(_ _)m

  • IME2002で半角数字入力

    IME2002で『テンキー』から入力された数字は標準で半角数字として表示され 文字キー上段の数字キーから入力された文字は全角数字になる設定になっていると思います。 この設定をすべて半角数字になるように変更しましたが、 使い勝手の都合で戻そうとしたのですが、設定を戻してもすべて半角数字で入力されてしまいます。 通常状態に戻したいのですが、ご存知の方いらっしゃったら教えてください。お願い致します。

  • 入力規則で半角数字のみ受け付ける方法

    今エクセルで、表を作っています。 ある行のみ半角数字しか入力できないようにしたいので入力規則「日本語入力オフ」にしたのですがアクティブにすると日本語入力になるだけで日本語入力も可能です。それを常に半角数字のみをいれるようにするにはどうすればいいでしょうか。  また、電話番号のみ入力を受け付けるという形にしたい時、例えば○○○-○○○ー○○○○と入力するものしか受付ないとする(文字の入力は受け付けない、エラーメッセージが出る)にはどうすればいいでしょうか。入力規則の設定のタブで「ユーザー設定」で###-###-####としたのですがこれでは駄目みたいです。基本的な事が分からないもので、どなたか教えて下さい!!

専門家に質問してみよう