ExcelVBAでファイルにパスワードを設定してみる

vba-file-password

こんばんは。ヤマテツだ。

ExcelVBAでファイルにパスワードを設定できるのか?

今日はこんな疑問にお答えしたい。

結論から言うと、パスワード設定は可能である。

それもたった1つの引数を設定することでだ。

今日はその設定方法について書いてみる。

目次

Excelファイルには2種類のパスワードが存在する

さて、一口にパスワードといっても実はExcelファイルのパスワードには2種類存在する。

それは、

  • 読み取りパスワード
  • 書き込みパスワード

だ。

読み取りパスワードは、そのパスワードを知らなければ中身を見ることができないもの。

書き込みパスワードはそのファイルの中身を見ることはできるが、保存はできないというものだ。

前者は他の人に見られてはいけないファイルに使う。

そして、後者はファイルのデータを限られた人にしかできないようにするために使う。

SaveAsの引数でパスワード設定をする。

このファイルにパスワード設定するにはSaveAsメソッドで保存する際に引数を設定するだけでいい。

SaveAsメソッドとは、ファイルを上書き保存するためのメソッドだ。

  • 読み込みパスワード=password
  • 書き込みパスワード=WriteResPassword

をそれぞれ引数にもってくる。

どちらの場合も15文字以内の文字列を設定することによって可能となる。

メールの添付ファイルにパスワードを自動設定する。

僕がこれが使ったのはお客様にメール送る際の添付ファイルにパスワードを設定する場合だ。

僕の場合、システムのパスワードリセット対応する仕事がある。

その際に初期化したパスワードをExcelファイルに書き込み、そのファイルを添付してメールすることがある。

ファイルの中身は他の人が見たら大変なので、そのファイルにパスワードを設定するのだ。

今回は中身が見られては困るので、読み込みパスワードを使う。

試しに以下は僕が実際に作ったコードだ。

新規でブックを作成し、それをFileNameで保存。その後は閉じるというものだ。

閉じたファイルを開こうとするとPassCord で設定したパスワードが要求されるはずだ。

単純なコードなのでこれだけでも汎用性はあると思う。

Gist
password.vb GitHub Gist: instantly share code, notes, and snippets.

まとめ

今日はExcelVBAでファイルにパスワードを設定する方法を書いてみた。

使う場面は限定的だが、もし良かったら使ってみてほしい。

  • URLをコピーしました!

運営者プロフィール

やまもとてつやのアバター やまもとてつや RPAライター

2021年10月にライター活動開始。
得意ジャンルはIT(Windows・RPA)と金融(保険・仮想通貨)。
SEOライティングとSNS運用を中心に活動中で、最近は念願だった電子書籍の執筆・編集も担当。
AI以上に正確で格調高い文章が書けると評価をいただいています。

目次