※パスワードがかかっていないファイルに対してパスワードを送って開いてもエラーにはならない。
■Excelファイルに読み取りパスワードを設定する
名前を付けて保存する際に、読み取りパスワードを設定します。
設定するには「SaveAs」メソッドの引数に「Password」を設定します。
パスワードには15文字以内の文字列を指定します。
読取パスワード設定コード
Sub setReaPw() '開くエクセルファイルを管理する変数 Dim targetWB As Workbook Dim targetPath As String targetPath = "C:\Users\デスクトップ\テスト\pwtest.xlsx" Set targetWB = Workbooks.Open(targetPath) '上書き確認のアラートが出ないようにする Application.DisplayAlerts = False 'ファイルに読み取り用パスワードを設定 targetWB.SaveAs Filename:=targetPath, Password:="ABC123" targetWB.Close Application.DisplayAlerts = True End Sub
読取用パスワード解除コード
一度パスワードを設定したファイルに対してパスワードを解除するには空の文字列を指定して保存します。
Sub releaseReadPw() '開くエクセルファイルを管理する変数 Dim targetWB As Workbook Dim targetPath As String targetPath = "C:\Users\デスクトップ\テスト\pwtest.xlsx" Set targetWB = Workbooks.Open(targetPath, Password:="ABC123") '上書き確認のアラートが出ないようにする Application.DisplayAlerts = False 'ファイルの読み取り用パスワードを解除 targetWB.SaveAs Filename:=targetPath, Password:="" targetWB.Close Application.DisplayAlerts = True End Sub
■Excelファイルに書き込みパスワードを設定する
名前を付けて保存する際に、読み取りパスワードを設定します。
設定するには「SaveAs」メソッドの引数に「WriteResPassword」を設定します。
パスワードには15文字以内の文字列を指定します。
Sub setWritePw() '開くエクセルファイルを管理する変数 Dim targetWB As Workbook Dim targetPath As String targetPath = "C:\Users\デスクトップ\テスト\pwtest.xlsx" Set targetWB = Workbooks.Open(targetPath, WriteResPassword:="ABC123") '上書き確認のアラートが出ないようにする Application.DisplayAlerts = False 'ファイルに書込み用パスワードを設定 targetWB.SaveAs Filename:=targetPath, WriteResPassword:="ABC123" targetWB.Close Application.DisplayAlerts = True End Sub
書込み用パスワード解除コード
一度パスワードを設定したファイルに対してパスワードを解除するには空の文字列を指定して保存します。
Sub releaseWritePw() '開くエクセルファイルを管理する変数 Dim targetWB As Workbook Dim targetPath As String targetPath = "C:\Users\デスクトップ\テスト\pwtest.xlsx" Set targetWB = Workbooks.Open(targetPath, WriteResPassword:="ABC123") '上書き確認のアラートが出ないようにする Application.DisplayAlerts = False 'ファイルの書込み用パスワードを解除 targetWB.SaveAs Filename:=targetPath, WriteResPassword:="" targetWB.Close Application.DisplayAlerts = True
ray88.hatenablog.com
■読み取り用と書込み用パスワードを設定する
Sub setPw() '開くエクセルファイルを管理する変数 Dim targetWB As Workbook Dim targetPath As String targetPath = "C:\Users\デスクトップ\テスト\pwtest.xlsx" Set targetWB = Workbooks.Open(targetPath) '上書き確認のアラートが出ないようにする Application.DisplayAlerts = False 'ファイルに読み取り用パスワードと書込み用パスワードを設定 targetWB.SaveAs Filename:=targetPath, Password:="ABC123", WriteResPassword:="ABC123" targetWB.Close Application.DisplayAlerts = True End Sub
読み取り用と書込み用パスワードを解除するコード
Sub releasePw() '開くエクセルファイルを管理する変数 Dim targetWB As Workbook Dim targetPath As String targetPath = "C:\Users\デスクトップ\テスト\pwtest.xlsx" Set targetWB = Workbooks.Open(targetPath, Password:="ABC123", WriteResPassword:="ABC123") '上書き確認のアラートが出ないようにする Application.DisplayAlerts = False 'ファイルの読み取り用パスワードと書込み用パスワードを解除 targetWB.SaveAs Filename:=targetPath, Password:="", WriteResPassword:="" targetWB.Close Application.DisplayAlerts = True End Sub