ACCESS VBA if文を使って条件分岐する方法(VBAコード公開)

ACCESSに限らず、プログラミングで最もよく使う構文は条件分岐とループだと思います。
ACCESSのVBAで条件分岐させる際にはif~thenの構文が良く使われます。
今回は、VBAプログラミングで最もよく使われるであろう、if文を使って条件分岐する方法をご紹介します。
こんにちは。
はこにわガジェット (@hakoniwagadget) です。
ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは基本機能だけでも十分便利ですが、VBAを使うことで格段に使いやすいデータベースを作成可能です。
この記事ではACCESSでのVBAの使い方をご紹介していきます。
構文
if文は以下の構文で使用します。
If 条件式 then
条件に合致した場合の処理
End If
条件式と条件に合致した際の処理を記載するだけですので、比較的簡単に使用できます。
最後のEnd Ifを記載し忘れるとエラーとなりますので、ご注意ください。
また、条件に合致しない場合の処理も規定することができます。
この場合はElseを使って以下のように記載します。
If 条件式 then
条件に合致した場合の処理
Else
条件に合致しなかった場合の処理
End If
VBAコードサンプル
では、if構文を使ったVBAコードのサンプルを見ていきましょう。
以下は、3月年度締めの場合に、日付から年度を求めるプロシージャです。
Public Function nendo(target_day As Date) As String
If Month(target_day) <= 3 Then
nendo = Year(target_day) - 1
Else
nendo = Year(target_day)
End If
End Function
では処理を解説します。
このプロシージャを呼び出す際に、引数としてtarget_dayが指定されて渡されます。
target_dayの月が3より小さい場合、つまり1~3月の場合は、年度は実際の年から-1されます。
例えば、2021年3月なら年度は2020年度、という具合です。
一方、Else以降は4月以降の場合の処理です。
この場合は、target_dayの年の部分がそのまま年度になります。
例えば、2021年4月なら2021年度、ということです。
If文記載時のコツ
If文が一つなら良いのですが、If文の中に更にIf文を記載していくような場合は、どのIf文のEnd Ifが書いてあるかわかりにくくなります。
こうした際に混同しないよう、If文ごとに段落の位置を合わせると分かりやすいでしょう。
下記に例を記載します。
If 条件式1 then
条件に合致した場合の処理1
If 条件式2 then
条件に合致した場合の処理2
If 条件式3 then
条件に合致した場合の処理3
End If
End If
End If
このように、VBAを後でメンテナンスすることも考慮して、コードの可読性は高めておきましょう。
以上、if文を使って条件分岐する方法をご紹介しました。
ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。
そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。
ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。

最後までお読みいただき、ありがとうございました。