ファイルをパスワード設定して上書き保存する関数
タイトルのマクロは、以下です。
'*****************************************
'* ファイルをパスワード設定して上書き保存する関数
'* ファイルパスとパスワードを引数として受け取る
'* filePath:パスワードを設定するファイルのパス
'* myPassword:設定するパスワード
Sub SetPasswordToFile(ByVal filePath As String, ByVal myPassword As String)
    ' 引数として渡されたファイルパスを開く
    Dim Workbook As Workbook
    Set Workbook = Workbooks.Open(filePath)
    ' ワークブックのパスワードを設定
    Workbook.password = myPassword
    ' 上書き保存してワークブックを閉じる
    Workbook.Close SaveChanges:=True
End Sub
Sub 使用例()
    ' ファイルパスとパスワードを定義
    Dim filePath As String
    filePath = "H:\temp\test.xlsx"
    Dim password As String
    password = "pw"
    ' `SetPasswordToFile` 関数を使って、指定したファイルにパスワードを設定
    Call SetPasswordToFile(filePath, password)
End SubこのVBAマクロは、指定したExcelファイルにパスワードを設定して上書き保存する機能を提供します。具体的に、二つの部分に分かれています: メインの処理を行う SetPasswordToFile 関数と、その関数を呼び出す 使用例 サブルーチンです。以下、各部分を詳しく解説します。
SetPasswordToFile 関数
'*****************************************
'* ファイルをパスワード設定して上書き保存する関数
'* ファイルパスとパスワードを引数として受け取る
'* filePath:パスワードを設定するファイルのパス
'* myPassword:設定するパスワード
Sub SetPasswordToFile(ByVal filePath As String, ByVal myPassword As String)
    ' 引数として渡されたファイルパスを開く
    Dim Workbook As Workbook
    Set Workbook = Workbooks.Open(filePath)
    ' ワークブックのパスワードを設定
    Workbook.password = myPassword
    ' 上書き保存してワークブックを閉じる
    Workbook.Close SaveChanges:=True
End Sub- 引数:
- filePath:パスワードを設定するファイルのパス。
- myPassword:設定するパスワード。
 
- ワークブックを開く:
    ' 引数として渡されたファイルパスを開く
    Dim Workbook As Workbook
    Set Workbook = Workbooks.Open(filePath)- 指定されたファイルパスのワークブックを開きます。
- Workbookという変数に開いたワークブックを格納します。
パスワードの設定:
    ' ワークブックのパスワードを設定
    Workbook.password = myPassword- 開いたワークブックに対してパスワードを設定します。
- この設定により、次回からファイルを開く際にパスワードが必要になります。
上書き保存と閉じる:
    ' 上書き保存してワークブックを閉じる
    Workbook.Close SaveChanges:=True- ワークブックを上書き保存して閉じます。
- SaveChanges:=Trueにより、変更内容を保存します。
使用例 サブルーチン
Sub 使用例()
    ' ファイルパスとパスワードを定義
    Dim filePath As String
    filePath = "H:\temp\test.xlsx"
    Dim password As String
    password = "pw"
    ' `SetPasswordToFile` 関数を使って、指定したファイルにパスワードを設定
    Call SetPasswordToFile(filePath, password)
End Subファイルパスとパスワードの定義:
    ' ファイルパスとパスワードを定義
    Dim filePath As String
    filePath = "H:\temp\test.xlsx"
    Dim password As String
    password = "pw"- パスワードを設定する対象ファイルのパスを filePathに設定します。
- 設定するパスワードを passwordに設定します。
関数呼び出し:
    ' `SetPasswordToFile` 関数を使って、指定したファイルにパスワードを設定
    Call SetPasswordToFile(filePath, password)- SetPasswordToFile関数を呼び出し、指定したファイルにパスワードを設定します。
- 引数として、ファイルパス (filePath) とパスワード (password) を渡します。
全体の流れ
- 使用例サブルーチンが実行されると、ファイルパスとパスワードが設定されます。
- SetPasswordToFile関数が呼び出され、指定されたファイルを開きます。
- 開いたファイルに対してパスワードが設定されます。
- 設定されたパスワードを含むファイルが上書き保存され、ファイルは閉じられます。
このマクロにより、簡単に任意のExcelファイルにパスワードを設定することができます。実際の使用シナリオに応じてファイルパスとパスワードを変更するだけで、このマクロを他のファイルにも適用できます。



