VB6・VBA関数メモ:GetAttr関数

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

この関数はフォルダやファイルの属性を取得する際に使用します。

戻り値は全属性の合計値が返る為、
どの属性かどうかを調べる場合はビット比較を使用します。


概要

GetAttr(PathName As String) As VbFileAttribute
機能 フォルダやファイルの属性を取得
引数 PathName フォルダやファイルのパス
String型
戻り値 属性を表す整数 VbFileAttribute列挙型


VbFileAttribute列挙型

定数名 説明
vbNormal 0 標準ファイルを取得
vbReadOnly 1 読み込み専用ファイル
vbHidden 2 隠しファイル
vbSystem 4 システムファイル (Macintosh不可)
vbDirectory 16 フォルダ
vbArchive 32 アーカイブ (属性最後にバックアップした後で、変更されたファイル) (Macintosh不可)
vbAlias 64 エイリアス ファイル (Macintoshのみ)


使用例

説明 記述例 出力
ファイルの属性を取得
Debug.Print GetAttr("E:¥File.txt")
32
フォルダの属性を取得
Debug.Print GetAttr("E:¥Folder¥")
16
指定パスが隠しファイルか調べる
Dim path As String
path = "E:¥HiddenFile.txt"
If GetAttr(path) And vbHidden = vbHidden Then
   Debug.Print "隠しファイル"
Else
   Debug.Print "隠しファイルではない"
End If
隠しファイル
指定パスがフォルダか調べる
Dim path As String
path = "E:¥Folder¥"
If GetAttr(path) And vbDirectory = vbDirectory Then
   Debug.Print "フォルダ"
Else
   Debug.Print "フォルダではない"
End If
フォルダ


動作検証

説明 記述例 出力
存在しないパスを指定するとエラー
On Error GoTo ERR_HANDLER

Debug.Print GetAttr("E:¥NoFile.txt")

ERR_HANDLER:

If Err > 0 Then Debug.Print Error
ファイルが
見つかりません。
ファイルオープン時やロック時でも使用可能
On Error GoTo ERR_HANDLER

'ファイルオープン
Dim n   As Integer
n = FreeFile
Open "E:¥File.txt" For Input Lock Read Write As #n

Debug.Print GetAttr("E:¥File.txt")

ERR_HANDLER:

'ファイルを閉じる
Close #n

If Err > 0 Then Debug.Print Error
32


コメント
コメントする








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