このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

【VBA】GetAttr関数の使い方

VBAのGetAttr関数は、指定したパスのファイルまたはフォルダの属性を取得するために使用されます。

この関数は次のような構文を持ちます。

GetAttr (ファイルまたはフォルダのパス)

このパスには、属性を取得したいファイルまたはフォルダのパスを指定します。

GetAttr関数は、属性に対応した値を返します。

この値を確認することでファイル/フォルダ属性を調べることができます。(確認にはビット演算を行います)

VBAが難しいと感じたら
プロにお任せして代わりに作ってもらうのはいかがでしょうか?
マクロの作成請負をしていますので、こちらからご相談ください。

ファイル/フォルダ属性一覧

ファイル/フォルダの属性は主に次のものがあります。

定数説明
vbNormal0標準
vbReadOnly1読み取り専用。
vbHidden2非表示。
vbSystem4システム ファイル。 Macintosh では使用できません。
vbDirectory16ディレクトリまたはフォルダー
vbArchive32前回のバックアップ以降にファイルが変更されています。 Macintosh では使用できません。
vbAlias64指定されたファイル名はエイリアスです。 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

サンプルコードでは、指定したファイル/フォルダパスの属性を取得し、それぞれの属性の有無を判定してメッセージボックスに表示しています。

VBAが難しいと感じたら
プロにお任せして代わりに作ってもらうのはいかがでしょうか?
マクロの作成請負をしていますので、こちらからご相談ください。

VBA

Posted by やろまい