VBScriptでInputBoxを活用する方法と実践演習

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の理解を深めることができたでしょう。

実際にコードを動かしてみることで、さらに理解が深まると思います。