- ベストアンサー
エクセルVBA Inputboxについて教えてください。
InputBoxの使い方について教えてください。 テストで下記のように書いてみました。 Sub input_test2() ans = InputBox("質問!適当に数字を入れてね") MsgBox Application.WorksheetFunction.IsNumber(ans), vbInformation, "入力判定" If Application.WorksheetFunction.IsNumber(ans) Then If ans = 0 Then MsgBox "入力されたのは、 0", vbInformation, "回答" If ans = 1 Then MsgBox "入力されたのは、 1", vbInformation, "回答" If ans = 2 Then MsgBox "入力されたのは、 2", vbInformation, "回答" If ans = 3 Then MsgBox "入力されたのは、 3", vbInformation, "回答" If ans >= 4 Then MsgBox "入力されたのは、 4以上", vbInformation, "回答" Else MsgBox "入力は数字でしてください!", vbExclamation, "お願い" End If End Sub 1.入力が数値ならTRUEがかえると思ったのですが、何を入れてもFALSEしかかえりません。どこがまずいのでしょうか? 2.表示されるInputBoxのサイズが随分横に長いのですが、サイズを変える方法はあるのでしょうか? 3.MsgBoxの"入力判定"や”回答”ようにInputBoxにも最上行に日本語を表示させる方法はないでしょうか? 以上、よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 1.の答え InputBox関数は文字列型の値を結果に返します。 したがって、数値を入力しても文字列型の数値なので、 評価結果がFalseになります。 なお、このような場合、 わざわざワークシート関数を使わなくても、 VBAの関数にIsNumeric関数というのがありますので、 こちらで書き換えてあります。 2.の答え サイズを変える方法はありません。 サイズを変更する必要がある場合は、 「ユーザーフォーム」を使います。 3.タイトルの表示はMsgbox関数と同じです。 Titleプロパティに値を指定します。 Option Explicit Sub input_test() Dim ans As String 'InputBoxの戻り値はString型になります。 ans = InputBox("適当に数字を入れてね", "質問!") If IsNumeric(ans) = True Then MsgBox "入力されたのは、" & ans & "です。", vbInformation, "回答" Else MsgBox "入力は数字でしてください!", vbExclamation, "お願い" End If End Sub
その他の回答 (1)
> Application.WorksheetFunction.IsNumber(ans) を IsNumeric(ans) にしてみてください。 サイズは変えられなかった気がします。 InputBoxのタイトル行も、MsgBox同様に、第2引数に入れてあげれば表示しますよ。 InputBox("質問!適当に数字を入れてね","Title") のようにしてみてください。
お礼
ありがとうございます。
お礼
ありがとうございます。 完璧です!