ユーザーから情報を受取るInputBox
マクロ講座21回 InputBoxで体重を聞いてみる
InputBox関数 Excel 2013 マクロ講座 21回
ユーザーから情報を受取るInputBox
ダイアログボックスを表示してユーザーからの情報を文字列として入力してもらう便利な関数がInputBox関数です。
今回はInputBox関数の使い方をマスターして、ユーザーの標準体重を算出したり、BMIを教えるマクロを作りましょう。
(サンプルファイルは、こちらから 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
ユーザーのBMIを教えるマクロ
こちらは応用として、ユーザーから身長と体重を入力してもらって、BMIを返すマクロになります。
Sub BMIを教える() Dim s As Variant, w As Variant, h As Long s = InputBox("あなたの身長は何cmですか?", "あなたの身長", 160) w = InputBox("ありがとうございます。続いて体重を教えてください?", "あなたの体重", 60) If IsNumeric(s) And IsNumeric(w) Then h = Round((w / (s / 100) ^ 2), 1) MsgBox "あなたのBMIは" & h & "kgです" Else MsgBox "まじめに入力してください。もう、終わります。" End If End Sub