VBScript(Visual Basic Scripting Edition)は、Windows環境で広く利用されているスクリプト言語です。
その中でも、ユーザーからの入力を簡単に取得できるInputBoxは、非常に便利な機能の一つです。
この記事では、InputBoxの基本的な使い方から、実際の使用例、そして学んだ内容を確認するための演習問題とその解答例を紹介します。
InputBoxとは?
InputBoxは、ユーザーにテキスト入力を促すダイアログボックスを表示するVBScriptの関数です。
ユーザーが入力したテキストは、この関数の戻り値として取得できます。
これにより、簡単にユーザーの入力を利用した処理を実行できます。
基本的なInputBoxの構文は次の通りです。
InputBox(prompt[, title][, default][, xpos][, ypos][, helpfile, context])
各引数の説明は以下の通りです。
- prompt: ユーザーに表示するメッセージ(必須)
- title: ダイアログボックスのタイトル(任意)
- default: テキストボックスに表示される初期値(任意)
- xpos: ダイアログボックスの左端からの位置(任意)
- ypos: ダイアログボックスの上端からの位置(任意)
- helpfile, context: ヘルプボタンとヘルプコンテキスト(任意)
例えば、次のように記述することで簡単な入力ボックスを表示することができます。
Dim userName
userName = InputBox("名前を入力してください:", "ユーザー入力", "山田太郎")
MsgBox "こんにちは、" & userName & "さん!"
このスクリプトを実行すると、「名前を入力してください」と表示された入力ボックスが表示されます。ユーザーが入力した名前がuserName変数に格納され、メッセージボックスでその名前が表示されます。
InputBoxの実用例
ここでは、InputBoxを利用した実際の使用例をいくつか紹介します。
例1: 簡単な計算機
以下のスクリプトは、2つの数字を入力させ、その合計を計算して表示するものです。
Dim num1, num2, sum
num1 = InputBox("最初の数字を入力してください:", "簡単な計算機")
num2 = InputBox("次の数字を入力してください:", "簡単な計算機")
If IsNumeric(num1) And IsNumeric(num2) Then
sum = CInt(num1) + CInt(num2)
MsgBox "合計は " & sum & " です。"
Else
MsgBox "有効な数字を入力してください。"
End If
例2: フィードバックの取得
このスクリプトは、ユーザーにフィードバックを求め、その内容を表示するものです。
Dim feedback
feedback = InputBox("フィードバックを入力してください:", "フィードバックフォーム")
If feedback <> "" Then
MsgBox "ご意見ありがとうございます。: " & feedback
Else
MsgBox "フィードバックが入力されませんでした。"
End If
これらの例は非常にシンプルですが、InputBoxを使用することで、ユーザーからの入力を受け取る機能を簡単に追加できます。
InputBoxの応用テクニック
InputBoxをさらに効果的に活用するためのいくつかの応用テクニックを紹介します。
応用1: 入力のバリデーション
入力されたデータが正しい形式であるかをチェックすることは重要です。
例えば、日付を入力させる場合、ユーザーが正しい日付形式で入力したかをチェックすることが必要です。
Dim inputDate
inputDate = InputBox("日付を入力してください (YYYY/MM/DD):", "日付入力")
If IsDate(inputDate) Then
MsgBox "有効な日付です: " & inputDate
Else
MsgBox "無効な日付です。正しい形式で入力してください。"
End If
応用2: ループを使った入力の再試行
入力が有効でない場合、ユーザーに再入力を促すことができます。
Dim age
Do
age = InputBox("年齢を入力してください:", "年齢入力")
If IsNumeric(age) And age > 0 Then
MsgBox "あなたの年齢は " & age & " 歳です。"
Exit Do
Else
MsgBox "有効な年齢を入力してください。"
End If
Loop While True
このスクリプトは、ユーザーが有効な年齢を入力するまで、入力を再試行させます。
演習問題
InputBoxの理解を深めるために、以下の演習問題に挑戦してみましょう。
演習1:2つの数値の掛け算
ユーザーに2つの数値を入力させ、それらの積を計算して表示するスクリプトを作成してください。
演習1:解答例
Dim num1, num2, product
num1 = InputBox("最初の数字を入力してください:", "掛け算計算機")
num2 = InputBox("次の数字を入力してください:", "掛け算計算機")
If IsNumeric(num1) And IsNumeric(num2) Then
product = CInt(num1) * CInt(num2)
MsgBox "掛け算の結果は " & product & " です。"
Else
MsgBox "有効な数字を入力してください。"
End If
演習2:ユーザー名と年齢の確認
ユーザーに名前と年齢を入力させ、適切な形式で入力されているか確認するスクリプトを作成してください。
- 名前が空欄でないこと、年齢が正の数であることを確認します。
- 入力が正しければ「こんにちは、[名前]さん! あなたは[年齢]歳です。」というメッセージを表示します。
演習2:解答例
Dim userName, age
userName = InputBox("名前を入力してください:", "ユーザー情報")
Do
age = InputBox("年齢を入力してください:", "ユーザー情報")
If age > 0 And userName <> "" Then
MsgBox "こんにちは、" & userName & "さん! あなたは " & age & " 歳です。"
Exit Do
Else
MsgBox "有効な名前と年齢を入力してください。"
End If
Loop While True
演習3:簡単なアンケートフォーム
InputBoxを使って、ユーザーに3つの質問を投げかけ、それらの回答をまとめて表示するスクリプトを作成してください。
演習3:解答例
Dim question1, question2, question3
question1 = InputBox("好きな色は何ですか?", "アンケート")
question2 = InputBox("趣味は何ですか?", "アンケート")
question3 = InputBox("好きな食べ物は何ですか?", "アンケート")
MsgBox "アンケート結果:" & vbCrLf & _
"好きな色: " & question1 & vbCrLf & _
"趣味: " & question2 & vbCrLf & _
"好きな食べ物: " & question3
まとめ
VBScriptのInputBoxは、簡単にユーザーからの入力を取得し、様々な処理に応用できる便利な機能です。
この記事で紹介した基本的な使い方から応用テクニック、演習問題を通じて、InputBoxの理解を深めることができたでしょう。
実際にコードを動かしてみることで、さらに理解が深まると思います。