【AccessVBA】開いているAccessファイルの場所を取得する

AccessからテキストファイルやExcelファイルに結果を出力する場合など、今開いているAccessファイルの場所(Path)を取得したいときは、下記マーカー部分のコードで取得することが可能です。

MsgBox CurrentProject.Path

PCのドライブ直下にある場合以外は最後尾に「¥」サインがついていないので、以下のような関数を用意しておくと使い勝手がよくなります。

Public Function getCurrentPath() As String
    Dim strPath As String
    Dim strSign As String
    strPath = CurrentProject.Path
    'Windows PathかSharepointなどのURLかを判定
    If InStr(strPath, "/") <> 0 Then
        strSign = "/"
    Else
        strSign = "\"
    End If
    'Pathの一番右側が区切り文字かどうかチェックし、
    '区切り文字ではなかった場合に区切り文字を追加
    If Right(strPath, 1) <> strSign Then
        getCurrentPath = strPath & strSign
    Else
        getCurrentPath = strPath
    End If
End Function

サンプルにはSharepointの考慮も少し入れてますが、SharepointやOneDriveの場合なども含めて考えると、その時やりたいことに合わせて処理を組まないといけないので、それはまた別の機会にでも詳しく書けたらと思います。