Microsoft Access Club >SampleFile >インデックス >このページ >次頁 < 前項  サイト内検索


InputとMsgboxの面白い使い方:SampleFile048



ユーザから入力を待つInputBox(下記を参照)ステートメントは、みなさんもシステム構築にお使いのことだと思います。数値や文字を入力させて、それに合わせてアクションが起きるようにプログラミングができます 。

今回、この機能にチョット装飾を施し、よりユーザーと対話できるように工夫します。参考ファイルは、私の年齢をInputBoxへ入力して貰うサンプルです。狙いは、InputBox及びMsgBoxのコンテンツに変数を用いる方法と、ユーザーが入力した数値をユーザーに返す方法の紹介です。

Inputステートメント

以下のように入力を促します。

考え方

考え方は、以下のとおりです。

  1. 変数を用いて、問い合わせ文字とInputBoxの戻り値を定義します。
  2. 入力値に合わせてMsgBox関数を利用し、その入力値をユーザーへ表示します。
  3. また、そのタイトルに問い合わせ文字を表示します。

フォームの作成

コマンドボタンを配置したフォームを作成します。

コマンドボタンのクリック時イベントプロシージャの作成

Private Sub コマンド_Click()

    Dim strmsg As String
    Dim backmsg As String

    '1つは、InputBoxに表示するメッセージ、もう1つは、InputBoxの戻り値です。
    strmsg = "私は何歳でしょうか? 当ててみて…"
    backmsg = InputBox(strmsg, "当たるかな?", "**")

    'IsNumeric関数を利用して数値か否か判断します。
    If IsNumeric(backmsg) Then

        '数値であれば、Select Caseで条件分岐を行います。
        Select Case backmsg
        
            'backmsg、つまりInputBoxの戻り値を下記のように & & で挟み、
            'タイトルにstrmsg、つまりInputBoxのメッセージを表示させます。
            'また、併せてSpace関数を利用して、スペースを3半角分挿入しています。
            Case 26
                MsgBox "そう、ずばり" & backmsg & "歳です。", 16, _
                        strmsg & Space(3) & backmsg & "歳"
            Case 23 To 25
                MsgBox backmsg & "歳ですか。惜しい、もうチョット上です。", 16, _
                        strmsg & Space(3) & backmsg & "歳"
            Case 27 To 30
                MsgBox backmsg & "歳ですか。惜しい、もうチョット下です。", 16, _
                        strmsg & Space(3) & backmsg & "歳"
            Case ""
                MsgBox "何か入力して下さい。", 16, strmsg
            Case Else
                MsgBox "違います。私は" & backmsg & "歳ではありません。", 16, _
                        strmsg & Space(3) & backmsg & "歳"
        End Select
        
    Else
        MsgBox "これは数値として認識できません。", 16, strmsg
    End If

End Sub
動作確認

違った年齢を入力すると、下記のようなメッセージを表示させます。

留意事項
  1. このようにユーザーとの対話の中で、入力値を返答メッセージに含ませる方法は、職員IDやパスワード入力時に利用されると効果的です。
  2. MsgBoxとInputBoxのプロシージャの書き方は各人いろいろで、実際問題、敢えて変数を使わずに作成できる場合が殆どです。

関連ページ

ページの先頭へ 前ページへ戻る

 


InputとMsgboxの面白い使い方:SampleFile048


 

-Microsoft Access Club-