ファイルやフォルダの属性を返す - GetAttr関数 [ExcelのVBA]
GetAttr関数
GetAttr関数はファイルやフォルダの属性を返します。
分類 | ファイル |
---|
書式
GetAttr(pathname)
pathname | ファイルへのフルパス名 |
[戻り値]
vbNormal(0) | 通常ファイル |
vbReadOnly(1) | 読み込み専用ファイル |
vbHidden(2) | 隠しファイル |
vbSystem(4) | システムファイル |
vbDirectory(16) | フォルダ |
vbArchive(32) | アーカイブファイル(Win専用) |
vbAlias(64) | エイリアスファイル(Mac専用) |
※戻り値には複数の値が含まれる可能性があります。
使用例
次はCドライブにある「test.txt」ファイルを読み込んだ例となります。
Private Sub CommandButton1_Click() Dim fileNo As Integer ' ファイル番号 Dim buffer As String ' 一時的に文字列を格納 Dim Str As String ' ファイルの内容 Dim filename As String ' ファイル名 ' 読み込むファイル名 filename = "C:\test.txt" Debug.Print "ファイル名:" & filename Debug.Print "最終更新日:" & FileDateTime(filename) ' ファイルの属性 Debug.Print "ファイルの属性に「通常ファイル」があります。" If ((GetAttr(filename) And vbReadOnly) = vbReadOnly) Then Debug.Print "ファイルの属性に「読み取り専用」があります。" End If If ((GetAttr(filename) And vbHidden) = vbHidden) Then Debug.Print "ファイルの属性に「隠しファイル」があります。" End If If ((GetAttr(filename) And vbSystem) = vbSystem) Then Debug.Print "ファイルの属性に「システムファイル」があります。" End If If ((GetAttr(filename) And vbDirectory) = vbDirectory) Then Debug.Print "ファイルの属性に「フォルダ」があります。" End If If ((GetAttr(filename) And vbArchive) = vbArchive) Then Debug.Print "ファイルの属性に「アーカイブ」があります。" End If If ((GetAttr(filename) And vbAlias) = vbAlias) Then Debug.Print "ファイルの属性に「エイリアス」があります。" End If ' ファイルを開く為のファイル番号を取得 fileNo = FreeFile ' 指定されたファイルを開く Open filename For Input As #fileNo ' ファイルモード Select Case FileAttr(fileNo) 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 Debug.Print "LOFによるファイルサイズ取得:" & CStr(LOF(fileNo)) & "バイト" Debug.Print "FileLenによるファイルサイズ取得:" & CStr(FileLen(filename)) & "バイト" ' ファイルがEOF(ファイルの終端)になるまでループをする Do Until EOF(fileNo) ' ファイルの位置 Debug.Print "Seekによる現在位置取得:" & CStr(Seek(fileNo)) ' ファイルから一行づつbufferに読み込む Line Input #fileNo, buffer ' 読み込んだファイル内容を格納する Str = Str + buffer + vbCrLf Loop Close #fileNo Debug.Print "" Debug.Print "--- 以下はファイル内容 ---" Debug.Print Str End Sub
結果

※UTF8に対応したファイルの読み込みは「ファイルの操作(Shift-JIS/UTF8対応)」の記事をご覧ください。
Visual Basicのファイル換関数
関数名 | 内容 |
---|---|
EOF | ファイルの現在位置が終端の場合にTrueを返す |
FileAttr | オープンしたファイルのファイルモードを返す |
FileDateTime | ファイルの作成日時または最終更新日時を返す |
FileLen | ファイルのサイズを返す |
FreeFile | ファイルをオープンする為のファイル番号を返す |
GetAttr | ファイルやフォルダの属性を返す |
Input/InputB | ファイルから指定文字数を読み込む |
LOF | オープンしているファイルの長さを返す |
Seek | オープンしているファイルの位置を返す |
エクセル講座のクイックリンク
スポンサーリンク
関連記事
前の記事: | ファイルをオープンする為のファイル番号を返す - FreeFile関数 [ExcelのVBA] |
次の記事: | ファイルから指定文字数を読み込む - Input/InputB関数 [ExcelのVBA] |
公開日:2015年07月08日
記事NO:01163