トップ > スキル : アプリケーション > VBA for Access > 応用編(組み込み関数)

VBA_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 書き込み中のファイルで、次の文字の出力位置に移動する