FSO ファイル・フォルダの属性
このコードは、FileSystemObject (FSO) を使用してフォルダおよびファイルの属性を取得し、それに基づいて操作を行う方法を示しています。
' FSO ファイル・フォルダの属性
Private Sub FSO_File_Folder_Attributes()
' 参照設定「Microsoft Scripting Runtime」必要
With New FileSystemObject
' フォルダやファイルの属性を格納する変数を宣言します
Dim myAttributes As Long
' フォルダやファイルのパスを指定します
Dim myPath As String
myPath = "C:\TEMP"
' GetFolder メソッドを使用してフォルダの属性を取得します
With .GetFolder(myPath)
' フォルダ名と属性を表示します
Debug.Print .Name, .Attributes
' フォルダであるかどうかを判定して表示します
If .Attributes And Directory Then
Debug.Print "フォルダです"
Else
Debug.Print "フォルダではありません"
End If
End With
' GetFile メソッドを使用してファイルの属性を取得します
With .GetFile(myPath & "\fuga.txt")
' ファイル名と属性を表示します
Debug.Print .Name, .Attributes
' 読み取り専用属性を切り替えます
If .Attributes And ReadOnly Then
Debug.Print "読み取り専用ですので解除します"
.Attributes = .Attributes Xor ReadOnly
Else
Debug.Print "読み取り専用ではありませんので設定します"
.Attributes = .Attributes Or ReadOnly
End If
End With
End With
End Sub
コードの概要
このサブプロシージャ FSO_File_Folder_Attributes
は、FSO を使用して特定のフォルダおよびファイルの属性を取得し、それを表示および変更する例を示しています。
コードの詳細
- FileSystemObject の作成:
With New FileSystemObject
ここでFileSystemObject
のインスタンスを作成しています。このオブジェクトを使用してファイルシステムにアクセスします。 - フォルダやファイルのパスを指定:
Dim myPath As String myPath = "C:\TEMP"
操作対象のフォルダまたはファイルのパスを指定します。 - フォルダの属性を取得および表示:
With .GetFolder(myPath)
Debug.Print .Name, .Attributes
GetFolder
メソッドを使用して指定したフォルダ (C:\TEMP
) を取得し、その名前と属性を表示します。 - フォルダの属性を判定:
If .Attributes And Directory Then
Debug.Print "フォルダです"
Else
Debug.Print "フォルダではありません"
End If
フォルダが実際にフォルダであるかどうかを判定します。Attributes And Directory
は、フォルダ属性が設定されているかをチェックしています。 - ファイルの属性を取得および表示:
With .GetFile(myPath & "\fuga.txt")
Debug.Print .Name, .Attributes
GetFile
メソッドを使用して特定のファイル (C:\TEMP\fuga.txt
) を取得し、その名前と属性を表示します。 - 読み取り専用属性の切り替え:
If .Attributes And ReadOnly Then
Debug.Print "読み取り専用ですので解除します"
.Attributes = .Attributes Xor ReadOnly
Else
Debug.Print "読み取り専用ではありませんので設定します"
.Attributes = .Attributes Or ReadOnly
End If
ファイルが読み取り専用であるかをチェックし、読み取り専用の場合は属性を解除し、読み取り専用でない場合は属性を設定します。
属性の詳細
- 標準ファイル:
0
- 読み取り専用ファイル:
1
- 隠しファイル:
2
- システムファイル:
4
- ディレクトリ:
16
- アーカイブ可能:
32
- リンクまたはショートカット:
1024
- 圧縮ファイル:
2048
コード全体の動作まとめ
FileSystemObject
を使用して、指定されたフォルダおよびファイルの属性を取得します。- フォルダの属性を判定し、フォルダであるかどうかを表示します。
- ファイルの属性を表示し、読み取り専用属性の有無をチェックして、それに応じて属性を切り替えます。
このコードにより、ファイルやフォルダの属性を取得して表示し、特定の属性を変更する方法が示されています。これにより、ファイルシステムの管理やファイル属性の制御が容易になります。