VB6・VBA関数メモ:FileAttr関数

FileAttr関数についてメモしておきます。

この関数はOpenステートメントで開いたファイルのファイルモードを取得する際に使用します。

第二引数のReturnTypeは16ビット環境でのみ動作するようです。
今や16ビットで動かすことなどないと思われるので常に省略して構わないかと思います。


概要

FileAttr(FileNumber As Integer, ReturnType As Integer) As Long
機能 ファイルのファイルモードを取得
引数 FileNumber ファイル番号
Integer型
ReturnType (省略時は1)
取得するファイル情報の種類を示す整数
 1:ファイルモードを示す値を返す
 2:ファイルハンドルを返す
Integer型
戻り値 1 :Inputモード
2 :Outputモード
4 :Randomモード
8 :Appendモード
32:Binaryモード
Long型


使用例

説明 記述例 出力
ファイルのファイルモードを取得
Dim n    As Integer

n = FreeFile()
Open "D:¥Sumple.txt" For Random As #n

Select Case FileAttr(n)
Case 1: Debug.Print "Input"
Case 2: Debug.Print "Output"
Case 4: Debug.Print "Random"
Case 8: Debug.Print "Append"
Case 32: Debug.Print "Binary"
End Select

Close #n
Random


動作検証

説明 記述例 出力
第二引数に1以外を指定するとエラー
On Error GoTo ERR_HANDLER

Dim n    As Integer

n = FreeFile()
Open "D:¥Sumple.txt" For Random As #n

Debug.Print FileAttr(n, 0)

ERR_HANDLER:

If Err > 0 Then Debug.Print Error

Close #n
プロシージャの呼び出し、または引数が不正です。
16ビット環境以外で第二引数に2を指定するとエラー
On Error GoTo ERR_HANDLER

Dim n    As Integer

n = FreeFile()
Open "D:¥Sumple.txt" For Random As #n

Debug.Print FileAttr(n, 2)

ERR_HANDLER:

If Err > 0 Then Debug.Print Error

Close #n
プロシージャの呼び出し、または引数が不正です。
オープンしていないファイル番号を指定するとエラー
On Error GoTo ERR_HANDLER

Debug.Print FileAttr(1)

ERR_HANDLER:

If Err > 0 Then Debug.Print Error

Close #n
ファイル名または番号が不正です。


コメント
コメントする








    
この記事のトラックバックURL
トラックバック