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

if文を使って条件分岐する方法

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の操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。

サービス一覧

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