読み取りパスワードを付けて保存

広告

名前を付けて保存する際に、読み取りパスワードを設定します。読み取りパスワードを設定すると、ファイルを開こうとした時にパスワードの入力が求められます。パスワード入力に失敗した場合は、ファイルを開く事ができません。

設定するには「SaveAs」メソッドの引数に「Password」を設定します。

Dim book1 As Workbook

Set book1 = Workbooks("VBAsample.xls")

book1.SaveAs Filename:="C:¥excelsample¥OtherFile.xls", _
    Password:="pass"

パスワードには15文字以内の文字列を指定します。

一度パスワードを設定したファイルに対してパスワードを解除するには空の文字列を指定して保存します。

Dim book1 As Workbook

Set book1 = Workbooks("VBAsample.xls")

book1.SaveAs Filename:="C:¥excelsample¥OtherFile.xls", _
    Password:=""

サンプルプログラム

では簡単なサンプルで試してみましょう。

testbooknew7.bas

Sub テスト()
    
    Dim book1 As Workbook

    Workbooks.Open filename:="C:¥excelsample¥2005年成績.xls"
    ActiveSheet.Range("A1").Value = "保存"

    Set book1 = ActiveWorkbook
    book1.SaveAs filename:="C:¥excelsample¥2005年成績(保存).xls", _
        Password:="pass"
    book1.Close
    
    Workbooks.Open filename:="C:¥excelsample¥2005年成績(保存).xls"
    
End Sub

上記マクロを実行すると、「2005年成績.xls」と言うブックを開いた後でセルA1に文字をセットした後、「2005年成績(保存).xls」という別の名前でブックを保存します。その際に読み取りパスワードが設定されています。改めて「2005年成績(保存).xls」というブックを開こうとしますが、パスワードが設定されているので次のように表示されます。

読み取りパスワードを付けて保存

パスワードを入力できれば、ブックを開くことができます。

読み取りパスワードを付けて保存

パスワードの入力に失敗したり、「キャンセル」ボタンをクリックするとエラーとなります。

Excel VBA入門の他の記事を見てみる

( Written by Tatsuo Ikura )