• ベストアンサー

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% (7417/18945)
回答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

専門家に質問してみよう