プロが教えるわが家の防犯対策術!

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

InputBoxに、半角数字のみと限定するようなオプションがあれば良いのですが・・・。

A 回答 (4件)

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
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/04/18 14:54

こんにちは。



初歩的なことだと思いますが、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
    • good
    • 1
この回答へのお礼

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

お礼日時:2007/05/25 10:48

InputBoxの内容が数値であるなら全角であっても


Cintでいいと思いますが、変換できる値は、-32,768 ~ 32,767 です。
CLng,CSng,CDblの方が桁数は使えますが...
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/04/18 14:27

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



参考URL:http://officetanaka.net/excel/vba/tips/tips38.htm
    • good
    • 0
この回答へのお礼

早速の回答をありがとうございます、参考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

お礼日時:2007/04/18 14:21

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A