このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

【VBA】パスワード付きでファイルを保存する方法(SaveAs)

今回はVBAを使って、パスワード付きのファイルを作成する方法を紹介します。

Excelのパスワード付きファイルには↓の2つがあります。

  1. 読み取り専用にする方法
  2. パスワードで保護する方法

1つ目は開くことができるけれど、編集することができないファイルです。

2つ目はそもそもパスワードを知らなければ開くことができないファイルです。

マクロで自動化をすることを考えると2つ目の方法のがニーズが高いかもしれません。

例えば、マクロで連絡用のファイルを作成して、その流れでパスワード付きのファイルに保存してメールで送るといった処理があるかもしれません。

今回は1つ目と2つ目の両方のやり方をお見せするので、ご覧ください。

VBAが難しいと感じたら
プロにお任せして代わりに作ってもらうのはいかがでしょうか?
マクロの作成請負をしていますので、こちらからご相談ください。

読み取り専用にする方法

こちらは、上の画像のように読み取り専用としてファイルを保存する方法です。

Sub Sample1()
    '''新規ブックを作成してパスワード付きで保存
    
    ''Workbooks.Addメソッドで新規ブックを作成
    With Workbooks.Add
        
        ''WriteResPasswordにパスワードを設定
        .SaveAs Filename := "C:~サンプルブック.xlsx", WriteResPassword := "ここにパスワードを入れる"
    End With
End Sub

このサンプルコードでは、新規ブックを作成して、そのブックをパスワード付きで保存しています。

サンプル用に新規ブック(Workbooks.Add)にしているだけなので、自分が保存したいブックに差し替えて使用してください。

        .SaveAs Filename := "C:~サンプルブック.xlsx", WriteResPassword := "ここにパスワードを入れる"

パスワード付きで保存している部分はここになります。

ブックを保存するSaveAsメソッドには、パスワード設定するための引数が用意されています。

読み取り専用にするにはWriteResPassword引数を使います。

この引数にパスワードを設定すると、読み取り専用のファイルが作成されます。

パスワードで保護する方法

こちらは、上の画像のようにファイルをパスワードで保護して保存する方法です。

Sub Sample2()
    '''新規ブックを作成してパスワード付きで保存
    
    ''Workbooks.Addメソッドで新規ブックを作成
    With Workbooks.Add
        
        ''Passwordにパスワードを設定
        .SaveAs Filename := "C:~サンプルブック.xlsx", Password := "ここにパスワードを入れる"
    End With
End Sub

このサンプルコードも新規ブックを作成して、そのブックをパスワードで保護して保存しています。

サンプル用に新規ブック(Workbooks.Add)にしているだけなので、自分が保存したいブックに差し替えて使用してください。

        .SaveAs Filename := "C:~サンプルブック.xlsx", Password := "ここにパスワードを入れる"

こちらも同じようにSaveAsメソッドに引数を設定しています。

パスワードで保護するにはPassword引数を使います。

この引数にパスワードを設定すると、パスワードで保護されたファイルを作成することができます。

SaveAsメソッドの引数一覧

最後にSaveAsメソッドの引数一覧を載せます。

使いたい引数があれば活用してみてください。

名前説明
FileName保存するファイルの名前を示す文字列。 完全なパスを含めることができます。そうしないと、Microsoft Excel によって現在のフォルダーにファイルが保存されます。
FileFormatファイルを保存するときに使用するファイル形式。 有効な選択肢の一覧については、 XlFileFormat 列挙体を参照してください。 既存のファイルの場合、既定の形式は最後に指定されたファイル形式です。新しいファイルの場合、既定値は使用されている Excel のバージョンの形式です。
Passwordファイルを保護するためのパスワードを表す 15 文字以内の文字列を指定します。大文字と小文字が区別されます。
WriteResPasswordファイルの書き込みパスワードを表す文字列を指定します。 パスワードを設定して保存したファイルを、パスワードを指定しないで開くと、ファイルは読み取り専用で開かれます。
ReadOnlyRecommendedファイルを開くとき、ファイルを読み取り専用として開くように勧めるメッセージを表示するには、 True を指定します。
CreateBackupバックアップ ファイルを作成するには、 True を指定します。
AccessModeブックのアクセス モードを指定します。
ConflictResolutionブックの保存中にメソッドが競合を解決する方法を決定する XlSaveConflictResolution 値。 xlUserResolution を指定すると、競合を解決するためのダイアログ ボックスが表示されます。
AddToMru最近使用したファイルの一覧にブックを追加するには、 True を指定します。 既定値は False です。
TextCodepageMicrosoft Excel のすべての言語で無視されます。
TextVisualLayoutMicrosoft Excel のすべての言語で無視されます。
LocalExcel の言語設定 (コントロール パネルの設定を含む) に合わせてファイルを保存するには、True を指定します。 False (既定値) は、Visual Basic for Applications (VBA) の言語に対してファイルを保存します (Workbooks.Open が実行される VBA プロジェクトが以前の国際化 XL5/95 VBA プロジェクトでない限り、通常は米国英語)。
SaveAsメソッドの引数一覧

VBAが難しいと感じたら
プロにお任せして代わりに作ってもらうのはいかがでしょうか?
マクロの作成請負をしていますので、こちらからご相談ください。

VBA

Posted by やろまい