こんばんは。ヤマテツだ。
ExcelVBAでファイルにパスワードを設定できるのか?
今日はこんな疑問にお答えしたい。
結論から言うと、パスワード設定は可能である。
それもたった1つの引数を設定することでだ。
今日はその設定方法について書いてみる。
Excelファイルには2種類のパスワードが存在する
さて、一口にパスワードといっても実はExcelファイルのパスワードには2種類存在する。
それは、
- 読み取りパスワード
- 書き込みパスワード
だ。
読み取りパスワードは、そのパスワードを知らなければ中身を見ることができないもの。
書き込みパスワードはそのファイルの中身を見ることはできるが、保存はできないというものだ。
前者は他の人に見られてはいけないファイルに使う。
そして、後者はファイルのデータを限られた人にしかできないようにするために使う。
SaveAsの引数でパスワード設定をする。
このファイルにパスワード設定するにはSaveAsメソッドで保存する際に引数を設定するだけでいい。
SaveAsメソッドとは、ファイルを上書き保存するためのメソッドだ。
- 読み込みパスワード=password
- 書き込みパスワード=WriteResPassword
をそれぞれ引数にもってくる。
どちらの場合も15文字以内の文字列を設定することによって可能となる。
メールの添付ファイルにパスワードを自動設定する。
僕がこれが使ったのはお客様にメール送る際の添付ファイルにパスワードを設定する場合だ。
僕の場合、システムのパスワードリセット対応する仕事がある。
その際に初期化したパスワードをExcelファイルに書き込み、そのファイルを添付してメールすることがある。
ファイルの中身は他の人が見たら大変なので、そのファイルにパスワードを設定するのだ。
今回は中身が見られては困るので、読み込みパスワードを使う。
試しに以下は僕が実際に作ったコードだ。
新規でブックを作成し、それをFileNameで保存。その後は閉じるというものだ。
閉じたファイルを開こうとするとPassCord で設定したパスワードが要求されるはずだ。
単純なコードなのでこれだけでも汎用性はあると思う。
まとめ
今日はExcelVBAでファイルにパスワードを設定する方法を書いてみた。
使う場面は限定的だが、もし良かったら使ってみてほしい。