指定したファイルの種類、サイズ、属性を取得する。
FileSystemObjectのGetFileメソッドを利用して指定のファイルの種類、サイズ、属性を取得することができます。
GetFileには下記の引数が設定できます。
| 引数名 | 説明 | 省略 | |
| 第1引数 | filespec | 確認対象のファイルのパスを指定 | 不可 |
ファイルの種類、サイズ、属性の情報はGetFileメソッドで取得したオブジェクトのプロパティから取得できます。
第1引数で指定したパスに実在しないファイルを指定した場合はエラーとなります。
'******************************************************************
' ファイルの種類、サイズ、属性を取得
'******************************************************************
Sub Main_GetFileInfo()
'確認したいファイルパスを指定
Dim sFile As String
sFile = "C:\VBA\FSO\vba-sample.xlx"
'FileSystemObjectの作成
Dim oFso As Object
Set oFso = CreateObject("Scripting.FileSystemObject")
'ファイルオブジェクトを取得
Dim oFile As Object
Set oFile = oFso.GetFile(sFile)
'プロパティからファイルの種類、サイズ、属性を取得
Debug.Print "FileType - " & oFile.Type
Debug.Print "FileSize - " & oFile.Size & " Byte"
Debug.Print "Attributes - " & getAttrDescript(oFile.Attributes)
End Sub
'******************************************************************
' ファイルの属性値の説明を取得
'------------------------------------------------------------------
' 第1引数:属性値
'------------------------------------------------------------------
' 戻り値 :属性値の説明
'******************************************************************
Function getAttrDescript(GetAttr As Integer) As String
Select Case GetAttr
Case 0
getAttrDescript = "Normal : 標準のファイル。"
Case 1
getAttrDescript = "ReadOnly : 読み取り専用ファイル。(読み取り/書き込み可能)"
Case 2
getAttrDescript = "Hidden : 隠しファイル。 (読み取り/書き込み可能)"
Case 4
getAttrDescript = "System : システム ファイル。 (読み取り/書き込み可能)"
Case 8
getAttrDescript = "Volume : ディスク ドライブのボリューム ラベル。(読み取り専用)"
Case 16
getAttrDescript = "Directory : フォルダーまたはディレクトリ。 (読み取り専用)"
Case 32
getAttrDescript = "Archive : アーカイブファイル。 (読み取り/書き込み可能)"
Case 1024
getAttrDescript = "Alias : リンクまたはショートカット。 (読み取り専用)"
Case 2048
getAttrDescript = "Compressed : 圧縮ファイル。 (読み取り専用)"
End Select
End Function■実行結果



