Excel 2013 マクロ講座21回 ユーザーから情報を受取るInputBox
Excel 2013 マクロ講座 21回
ユーザーから情報を受取るInputBox
ダイアログボックスを表示してユーザーからの情報を文字列として入力してもらう便利な関数がInputBox関数です。
(サンプルファイルは、こちらから 2013マクロ講座21回サンプルデータ)
InputBox関数は自由な文字列の情報を取得する
[構文]

引数のPrompt以外は省略可能です。
Defaultは、規定値を指定します。
ダイアログボックスの位置の設定は、引数Xpos、Yposで指定します。


引数のPrompt以外は省略可能です。
Defaultは、規定値を指定します。
ダイアログボックスの位置の設定は、引数Xpos、Yposで指定します。

ユーザーに身長を聞いて入力してもらい、標準体重を教えるというマクロを作ります。
InputBox(Prompt, Title) 部分は
InputBox(”メッセージ”, ”ウィンドウタイトル”) なので、
InputBox(”体重教えてよ”, ”平均体重”) みたいな感じでいいでしょう。
変数ですが、
ユーザーの身長を変数に s (sinchyoのs)
計算した標準体重を変数に h (hyoujyunのh)
このようなコードになりました。
InputBox(Prompt, Title) 部分は
InputBox(”メッセージ”, ”ウィンドウタイトル”) なので、
InputBox(”体重教えてよ”, ”平均体重”) みたいな感じでいいでしょう。
変数ですが、
ユーザーの身長を変数に s (sinchyoのs)
計算した標準体重を変数に h (hyoujyunのh)
このようなコードになりました。
Sub BMI()
Dim s As Double
Dim h As Double
s = InputBox("あなたの身長は何cmですか?", "あなたのBMI")
h = 22 * s * s / 10000
MsgBox ("あなたの標準体重は" & h & "kgです")
End Sub
マクロを実行すると、ダイアログボックスが表示され、
「あなたの身長は何cmですか?」と聞いてきますから、入力してもらいます。

「あなたの身長は何cmですか?」と聞いてきますから、入力してもらいます。

OKをクリックすると、標準体重を表示します。


数値が入力されたら続行、文字なら
上記のコードで、うっかり
文字を入力した場合や[キャンセル]ボタンをクリックした場合は工ラーになってしまいます。
工ラー回避する場合は、まず変数をVariant バリアント型にします。
また数値が、入力されたら処理を続行し、文字列が入力された場合は処理を中止するようにしましょう。 入力されたデータが数値かどうかを調べるために、ここではIsNumeric関数を使用します。
工ラー回避する場合は、まず変数をVariant バリアント型にします。
また数値が、入力されたら処理を続行し、文字列が入力された場合は処理を中止するようにしましょう。 入力されたデータが数値かどうかを調べるために、ここではIsNumeric関数を使用します。
Sub BMI2()
Dim s As Variant
Dim h As Variant
s = InputBox("あなたの身長は何cmですか?", "あなたのBMI")
If IsNumeric(s) Then
h = 22 * s * s / 10000
MsgBox ("あなたの標準体重は" & h & "kgです")
End If
End Sub
スポンサーリンク
スポンサーリンク