【VBA】GetAttr関数の使い方
VBAのGetAttr関数は、指定したパスのファイルまたはフォルダの属性を取得するために使用されます。
この関数は次のような構文を持ちます。
GetAttr (ファイルまたはフォルダのパス)
このパスには、属性を取得したいファイルまたはフォルダのパスを指定します。
GetAttr関数は、属性に対応した値を返します。
この値を確認することでファイル/フォルダ属性を調べることができます。(確認にはビット演算を行います)
ファイル/フォルダ属性一覧
ファイル/フォルダの属性は主に次のものがあります。
定数 | 値 | 説明 |
---|---|---|
vbNormal | 0 | 標準 |
vbReadOnly | 1 | 読み取り専用。 |
vbHidden | 2 | 非表示。 |
vbSystem | 4 | システム ファイル。 Macintosh では使用できません。 |
vbDirectory | 16 | ディレクトリまたはフォルダー |
vbArchive | 32 | 前回のバックアップ以降にファイルが変更されています。 Macintosh では使用できません。 |
vbAlias | 64 | 指定されたファイル名はエイリアスです。 Macintosh でのみ使用できます。 |
この定数(値)とGetAttr関数の返り値を比較することで、ファイル/フォルダ属性を調べます。
GetAttr関数の使い方(サンプルコード)
Sub GetFileAttributes()
Dim filePath As String
Dim attrs As Integer
' ファイル/フォルダパスを指定
filePath = "ファイルパス"
' ファイルの属性を取得
attrs = GetAttr(filePath)
' 各属性を判定して処理
If (attrs And vbNormal) <> 0 Then
MsgBox "通常のファイルです"
End If
If (attrs And vbReadOnly) <> 0 Then
MsgBox "読み取り専用のファイルです"
End If
If (attrs And vbHidden) <> 0 Then
MsgBox "隠しファイルです"
End If
If (attrs And vbDirectory) <> 0 Then
MsgBox "フォルダです"
End If
If (attrs And vbArchive) <> 0 Then
MsgBox "アーカイブです(ファイルが前回のバックアップ以降に変更されている)"
End If
If (attrs And vbAlias) <> 0 Then
MsgBox "エイリアスファイルです"
End If
End Sub
サンプルコードでは、指定したファイル/フォルダパスの属性を取得し、それぞれの属性の有無を判定してメッセージボックスに表示しています。