アクセス上位ページ
 
最近の更新内容
(7)-a.Dir関数 ⇐ [PREV]
[NEXT] ⇒ (7)-c.CurDir関数

Excel VBA ≫ 2.関数リファレンス - ファイル・フォルダ操作(7)-b.GetAttr関数

【ページ内リンク】

GetAttr関数

GetAttr関数はファイルまたはフォルダの属性を整数 (Integer型) で返します。 この戻り値とファイル属性を表す定数を And でビット演算を行うと属性の有無がわかります。



  • 【構文】
    GetAttr ( PathName )

      【戻り値】 整数型 (Integer)


  • 引数名 省略 説明
    PathName × ファイル名を表す文字列式を指定します。 フォルダ名およびドライブ名も含めて指定できます。


    ファイル属性を表す定数
    定数 説明
    vbNormal 0 標準ファイル(既定値)
    vbReadOnly 1 読み取り専用ファイル
    vbHidden 2 隠しファイル
    vbSystem 4 システム ファイル
    ※Windowsのみ
    vbVolume 8 ボリューム ラベル
    ※Windowsのみ
    vbDirectory 16 フォルダ
    vbArchive 32 アーカイブ
    ※Windowsのみ
    vbAlias 64 エイリアス ファイル
    ※Macintoshのみ


  • <サンプルファイル・フォルダ>

  • サンプルファイル・フォルダ


  • ファイル・フォルダ判別例
  • Dir関数(sample_ef071_04)に手を加えて、ファイルとフォルダを区別できるようにしました。
    GetAttr の戻り値とフォルダの属性である vbDirectory を And でビット演算し、ゼロでなければフォルダになります。
    Sub sample_ef072_01()
        Dim myFile      As String
        Dim strRtn      As String
    
        myFile = "C:\Users\Public\vba\"
    
        '初回検索
        strRtn = Dir(myFile, vbReadOnly + vbHidden + vbDirectory)
    
        Do Until strRtn = ""
            Select Case strRtn
            Case ".", ".."
                'カレントフォルダと親フォルダの場合は出力しない。
            Case Else
                If (GetAttr(myFile & strRtn) And vbDirectory) > 0 Then
                    strRtn = strRtn & " [フォルダ]"
                Else
                    strRtn = strRtn & " [ファイル]"
                End If
    
                Debug.Print "Dir関数戻り値:" & strRtn
            End Select
    
            '2回目以降は引数を省略してDir関数を使用
            strRtn = Dir
        Loop
    End Sub
    
    ⇒ サンプルマクロ集 へ

    <実行結果(イミディエイトウィンドウ)>
    Dir関数戻り値:AAA.xlsx [ファイル]
    Dir関数戻り値:folder1 [フォルダ]
    Dir関数戻り値:folder2 [フォルダ]
    Dir関数戻り値:test1.xlsx [ファイル]
    Dir関数戻り値:test2.txt [ファイル]
    

カテゴリ内ページ
Excel VBA 〜 総目次 〜
- 2.関数リファレンス
--- (7)-a.Dir関数
--- (7)-b.GetAttr関数
--- (7)-c.CurDir関数
--- (7)-d.FreeFile関数
--- (7)-e.EOF関数
--- (7)-f.FileLen、LOF関数
--- (7)-g.ChDir、ChDrive
--- (7)-h.Name
--- (7)-i.FileCopy
--- (7)-j.Kill
--- (7)-k.MkDir、RmDir



Page
Top