トップ > スキル : アプリケーション > VBA for Access > 応用編(組み込み関数)
ファイルがあるかどうかを調べたり、ファイルのパスを返したりする関数を説明します。
Dir関数
指定したファイル名が存在するかどうかを調べ、存在すればそのファイル名を返し、存在しなければ長さ0の文字列を返します。
Dir関数
【書式】 Dir(ファイル名 [,ファイル属性])
指定するファイル名にはワイルドカード(*、?など)を使うことができます。
ファイル属性には、以下のような定数を指定することができます。
ファイル属性 | 定数 | 値 |
---|---|---|
標準ファイル | vbNormal | 0 |
読み取り専用ファイル | vbReadOnly | 1 |
隠しファイル | vbHidden | 2 |
システムファイル | vbSystem | 4 |
ボリュームラベル | vbVolume | 8 |
フォルダ | vbDirectory | 16 |
Dドライブのaccessフォルダ内に「.accdb」ファイルが存在するかどうかを調べ、存在すればファイル名を表示するには、以下のような記述をします。
(例)
Sub dir_kansuu() Dim myFile As String myFile = Dir("D:\access" & "\" & "*.accdb") Do While myFile <> "" MsgBox myFile myFile = Dir Loop End Sub
存在すればファイル名が表示されます。存在しない場合は、メッセージは返されません。

また、myFile = Dir("D:\*", 16)と記述すると、Dドライブ内のフォルダ名が表示されます。
CurDir関数
指定したドライブの現在のパスを返します。パスはバリアント型(内部処理形式StringのVariant)の値を返します。
CurDir関数
【書式】 CurDir(ドライブ名)
引数のドライブ名は省略できます。引数はドライブを示す文字列を指定します。引数が省略された場合、または長さ0文字列(" ")を指定した場合は、カレントドライブのパスを返します。
カレントドライブとは、現在開いているデータベースファイルの存在するドライブのことです。
現在開いているCドライブに存在するVBA練習ファイルのパス(カレントドライブ)を表示するには、以下のように記述します。
(例)
Sub curdir_kansuu() MsgBox CurDir("C") MsgBox CurDir("D") End Sub
Cドライブ指定であれば、カレントドライブのパスが表示され、Dドライブ指定であればパスが表示されません。

ファイルを操作するその他の関数
関数名 | 説明 |
---|---|
FileAttr | Openステートメントで開いたファイルのファイルモードを返す |
FileDateTime | 指定したファイルの最終更新日時を返す |
FileLen | 指定したファイルのサイズを返す |
Spc | 書き込み中のファイルに、スペースを挿入する |
Tab | 書き込み中のファイルで、次の文字の出力位置に移動する |