【VBA】ファイルの属性(読み取り専用等)を変更する

ファイルの属性(読み取り専用等)を変更する方法は
2種類あります!

どちらの方法でも可読性に違いは無いと思うため、
ここでは両方のやり方を記載します!
※どちらの方法を採用するかは好みで決めて良いと思います。

ここでは
 ・属性を「読み取り専用」へ変更するVBAコード
を記載します!

PR

FileSystemObjectを使用する方法

「FileSystemObject」の「GetFile」メソッドで取得した
 ・「Fileオブジェクト」の「Attributes」プロパティに、
 ・「vbReadOnly(1:読み取り専用)」を設定
します。

Option Explicit

Sub sample()
    
    Dim fso As Object
    Dim fileFullPath As String
    
    'ファイルのパスを指定
    fileFullPath = "C:\Users\user\Desktop\aiueo.txt"
    
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    'ファイルの属性を「読み取り専用」へ変更
    fso.GetFile(fileFullPath).Attributes = vbReadOnly
    
    '後片付け
    Set fso = Nothing
    
End Sub


上記のVBAコードで使用した以下の詳細は、公式サイトをご確認ください。

●「FileSystemObject」の「GetFile」メソッド


●「Fileオブジェクト」の「Attributes」プロパティ

PR

SetAttrステートメントを使用する方法

Option Explicit

Sub sample()
    
    Dim fileFullPath As String
    
    'ファイルのパスを指定
    fileFullPath = "C:\Users\user\Desktop\aiueo.txt"
    
    'ファイルの属性を「読み取り専用」へ変更
    SetAttr fileFullPath, vbReadOnly
    
End Sub

属性を「標準(読み取り専用でない)」にする場合は、「vbReadOnly」の部分を「vbNormal」にします。


「SetAttrステートメント」の詳細は、公式サイトをご確認ください。