見出し画像

マクロVBA パスワード設定・解除ツール

1.はじめに

他社も交えてのプロジェクトなど、ファイル共有サービスなどを利用する場合、基本的にドキュメントにはパスワードを設定すると思います。

1ファイルならともかく、複数ファイルがある場合に1ファイルごとにパスワードを設定するのは非常に面倒ですよね・・・。

まさに、最近60ファイル近くエクセルを、ファイル共有サービスにアップしたり、反対に他社が作成したファイルのパスワードを解除して、社内フォルダに配置したり・・・

パスワード設定・解除の時間が著しく無駄であるため、必要そうな処理をググってミックスしながら、マクロVBAを作成しました。

同様のお悩みを抱えている方の参考になればと思います。

2.処理の流れ

運用も含めた処理の流れとしては、ざっと以下の通りです。

(1) パスワード設定

①パスワード設定したいファイル等とマクロVBAを仕込んだエクセルのみ
 同一フォルダに保存する(フォルダAとする)

②フォルダA内でパスワード設定プログラムを実行すると、パスワード設定
 されたファイルがパスワード設定済フォルダに格納される

パスワード設定の流れ

(2)パスワード解除

①パスワード解除するファイル等とマクロVBAを仕込んだエクセルのみ
 同一フォルダ(フォルダA)に保存する

②フォルダA内でパスワード解除プログラムを実行すると、パスワード解除
 されたファイルがパスワード解除済フォルダに格納される

パスワード解除の流れ

なぜ、設定済フォルダや解除済フォルダを用意してそこに格納するかというと、パスワード設定・解除の場合も、上書き保存をすることとなります。
マクロVBAは手動で行うことを、自動化するだけなので上書き保存するかのメッセージ表示がされ、OKボタンを押す必要が生じます。

60回OKボタンを押すのは、非効率なので別フォルダに新規ファイルとして保存するようにしています。

上書き保存しますかメッセージを表示させない方法もあるのですが、試したところ、処理自体もスキップされてしまいました。
そのため、別フォルダに設定済あるいは解除済のファイルを格納する方式としています。

3.必要となるマクロVBA処理

上記の流れから、必要となる自動処理としては以下です。

(1)フォルダ作成処理

マクロVBAファイルとパスワード設定対象ファイル(もしくはパスワード解除対象ファイル)が格納されているフォルダ内に、処理済のファイルを格納するフォルダを作成する処理が必要です。

また、そもそも処理がどこのフォルダで行われているか。フォルダパスを取得する処理も必要です。

(2)パスワード設定・解除処理

任意のパスワードを設定する処理です。パスワードを固定値にすると簡単ですが、それだとパスワードをかける意味があまり無い気もするので、任意のパスワードを設定できるようにします。

なお、解除も設定も処理としてはほぼ一緒です。

複数ファイルである場合、フォルダ内のファイルをループ処理で順番に処理していくことも必要です。

4.参考となるサイト

参考にさせていただいたのは、以下サイトです。
多少、心得がある方なら以下材料を組み合わせて、3.の処理を実装してみてください。

本当にこんな情報がネットを検索するだけで参照できるなんて、便利な世の中です。

・現在のフォルダパスを取得

・フォルダ作成

・フォルダ内のファイルに対してループ処理を行う

・パスワード設定・解除

5.コード全文

以下は、参考までに私が作成してみたものです。
答え合わせや、兎に角至急使いたいのでコピペで済ませたいという方はどうぞ!!

(1)パスワード設定

ここから先は

1,748字

¥ 300

この記事が気に入ったらサポートをしてみませんか?