PR

Accessの作業効率UP!カスタム関数を作ってもっと便利に

Access

こんにちは、なかぜんです。
Accessで日々の業務をこなしていると、「またこの計算か…」「毎回このチェック作業、面倒だな…」と感じたことはありませんか?

そんなときに便利なのが「カスタム関数(ユーザー定義関数)」です!
よく使う処理を関数としてまとめておけば、どのフォームやクエリからでも使い回しができて、作業効率がグッと上がりますよ。

カスタム関数とは?

Accessの「標準関数」では足りない処理を、自分でVBAコードとして定義できるのがカスタム関数です。
例えば「数字のゼロ埋め」「日付の形式統一」「文字列の一部抜き出し」など、業務に合わせて自由に関数を作成できます。

モジュールで関数を定義しよう

まずはカスタム関数を作成する「標準モジュール」を用意します。

' 例:社員番号を5桁にゼロ埋めする関数
Public Function FormatEmployeeID(empID As Long) As String
    FormatEmployeeID = Format(empID, "00000")
End Function

使い方: フォームのコントロールソースやクエリの式で
=FormatEmployeeID([社員ID]) のように呼び出します。

画面イメージ

以下のように、クエリのフィールドに直接使えます。

よくあるミスと注意点

  • 関数名のスペルミス(呼び出すときに間違いやすい)
  • モジュールが「標準モジュール」になっていないと関数が認識されません
  • クエリ内で使う場合、引数にNullが含まれるとエラーになることがあります(Nz関数などで対処)

応用:日付フォーマットやチェックロジックも関数に!

' 和暦に変換する例
Public Function ToWareki(targetDate As Date) As String
    ToWareki = Format(targetDate, "gggee年mm月dd日")
End Function

' 入力された文字列が英数字だけかチェック
Public Function IsAlphaNumOnly(strInput As String) As Boolean
    Dim i As Integer
    For i = 1 To Len(strInput)
        If Not Mid(strInput, i, 1) Like "[A-Za-z0-9]" Then
            IsAlphaNumOnly = False
            Exit Function
        End If
    Next
    IsAlphaNumOnly = True
End Function

こうした関数を用意しておけば、入力チェックやデータ整形もラクラクです♪

まとめ:カスタム関数で「自分専用のAccess」に

今回はAccessでカスタム関数を作成する方法と、実務で使える具体例をご紹介しました。

  • よく使う処理を関数化することで、作業効率が大幅アップ
  • フォームやクエリ、レポートでも再利用OK
  • VBAの基本的な書き方に慣れる練習にもなる

「これ、毎回やってるな」と思った処理があったら、まずは一つ関数にしてみましょう。きっとAccessがもっと便利になりますよ♪