• ベストアンサー

パスワードをまとめて入力したい

勤め先で顧客へのデータ提供にエクセルファイルを使っているのですが、 メールでの送信の為、全てのファイルにパスワードを設定しています。 また、私の業務として送信前に全てのファイルの確認があるのですが、 以前はパスワードの設定をしていなかったので20-30個のファイルをまとめて開いて 内容をマクロにチェックしてもらっていました。 ところが、パスワードを設定することになった為に、これらのファイルを開くと 当然のことながら全てのファイルについてパスワードの入力を求められます。 マクロにはパスワードを入力する機能がないのでエラーになってしまいます。 パスワードは全て同一のものなのでファイルを開いたときに出る 入力欄に自動でパスワードを入力させたいのですが、 どうしたら実現できるのかわからずにいます。 フォームのテキストボックスに値を入れるように TextBox1 = "12345678" といった感じには出来ないものでしょうか? マクロでフォームへの入力やボタンのクリック操作を出来ないものでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Gizensha
  • ベストアンサー率34% (207/608)
回答No.1

VBAならOpenメソッドでパスワードを指定できますが、それじゃだめですか? 個人的にはパスワードをソースコードや設定ファイルに保存するのは好きではないので、 初回のみ入力して、後はメモリに保存したまま開き続けるマクロを組むと思います。

erara
質問者

お礼

ご回答ありがとうございます。 「.Open」=「ファイル名を指定して開くだけのもの」 としか考えられなくて視野が狭くなっていました。 どうしても手で作業するようにマクロにも作業してもらわなくては ならないと思い込んでいました。

その他の回答 (1)

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

全て同じパスワードであれば、VBAからパスワード付きでブックを開くことが可能です。 expression.Open(FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMRU) (詳しくはOpenメソッドのヘルプを参照してください) 現在、チェック用のマクロを使っていらっしゃるとのことですので、これにファイルを開く機能を加えて、『ファイルを開いてチェックする』ものに変更すればよいのではないでしょうか? また、ファイルが20~30あるとのことなので、これに関してもファイルの一覧表を作成しておいて、『この表に基づいてブックを順に開き内容をチェックする』という一連の操作までをマクロ化しておけば、さらによろしいかと思われます。 ただし、上記のマクロ内にパスワードが必要となりますので、そのまま記載してしまうとパスワードが漏れる可能性があります。パスワードは実行の際に入力(一度だけ)するとか、別ファイルで暗号化しておくとか、マクロをコンパイルして見られなくしておくなど、セキュリティ上の一工夫が必要かと思われます。(一番簡単かつ安全なのは、最初に一度だけ入力する案でしょう)

erara
質問者

お礼

ご回答ありがとうございます。 No.1の回答者様にもご指摘いただきましたが、 最初にパスワードを入力する形式にしようと思います。 全ての顧客に同じパスワードでは意味が無かろうという もっともな意見が出ており取引先毎にパスワードを グループ化する予定ですので、その方が柔軟に使用できそうです。

関連するQ&A