アクセス担当のまみです。
エクセルでもIFってよく使っているからか、アクセスでもよくIFを使います。
条件分岐の基本といったところでしょうか。
エクセルで慣れているのでIFって使いやすいんじゃないかな。
今回は、IFの使い方についてお伝えしますね。
Contents
IF~End IF
真の場合
End If
一番基本の構文です。
条件式を満たした場合に処理が実行されて、条件式を満たさない場合はスルーされます。
では、データを入力して、入力チェックをするようなフォームを作ってみましょう。
使用するフォーム
ラベルとテキストボックス、ボタンを1つずつ配置しましょう。
ラベル 「Aを入力してください」
テキストボックスの名前 「tx入力」
ボタンの名前 「btnチェック」
ボタンの標題 「チェック」
フォームの作り方の詳細は下記の記事をどうぞ!
①「btnチェック」を選択した状態で、プロパティシートの②「イベント」タブを選択して「クリック時」に「イベントプロシージャ」を選びコードの画面を表示します。
「Private Sub btnチェック_Click()」と「End Sub」の間に下記のコードを記載しましょう。
If Me.tx入力.Value = "A" Then MsgBox "Aが入力されました" End If
テキストボックスに「A」が入力されたらメッセージボックスが表示されます。
テキストボックスに「A」以外の入力があった場合は何も起こりません。
「A」を入力した場合
「C」を入力した場合
コードをコピーされたい場合は下記の記事を参考にしてください。
IF~Else~End IF
真の場合
Else
偽の場合
End If
先ほどのコードに下記のコードを追加しましょう。
Else MsgBox "A以外が入力されました"
条件を満たさなかった場合の処理を追加しました。
さっそく動作確認してみましょう。
[quads id=2]
IF~ElseIF~Else~End IF
条件式1を満たした場合の処理
ElseIF 条件式2 Then
条件式2を満たした場合の処理
Else
どちらも満たさない場合の処理
End If
実際にやってみようか。条件はいくつにする?
ではラベルを「A~Cを入力してください」に変更しましょう。
私は上書きしちゃいますが、フォームを取っておきたかったら、名前を付けて保存しておいてくださいね。
保存したフォームをコピーして使うと良いですよ!
「Private Sub btnチェック_Click()」と「End Sub」の間に記載するコードは下記になります。
※少し先ほどのコードと違うので上書きしちゃいましょう。
If Me.tx入力.Value = "A" Then MsgBox "Aが入力されました" ElseIf Me.tx入力.Value = "B" Then MsgBox "Bが入力されました" ElseIf Me.tx入力.Value = "C" Then MsgBox "Cが入力されました" Else MsgBox "A~C以外が入力されました" End If
動作確認をしてみましょう。
IFを入れ子(ネスト)にする
では先ほどのフォームにラベルとテキストボックスを追加して、少し名前を変更しましょう。
追加するラベルには「(1)Aを入力してください」と入力
追加するテキストボックスの名前 「tx入力1」
テキストボックス「tx入力」を「tx入力2」と名前を変更
ラベル「A~Cを入力してください」に(2)を追加
「Private Sub btnチェック_Click()」と「End Sub」の間に記載するコードは下記になります。
If Me.tx入力1.Value = "A" Then If Me.tx入力2.Value = "A" Then MsgBox "(2)にAが入力されました" ElseIf Me.tx入力2.Value = "B" Then MsgBox "(2)にBが入力されました" ElseIf Me.tx入力2.Value = "C" Then MsgBox "(2)にCが入力されました" Else MsgBox "(2)にA~C以外が入力されました" End If Else MsgBox "(1)にA以外が入力されました" End If
まとめ
IFって本当によく使います。
最初のうちはIFを知っているだけでもプログラムが組めちゃいますので、ぜひ使えるようになっちゃいましょう!
処理が複雑になってくると、コードが読みにくくなるし、処理速度の問題もあるので、Select Caseなどの他の構文を覚えるのがいいですね。