質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

2回答

6080閲覧

VBA OpenメソッドのPasswordを複数設定することは可能でしょうか

退会済みユーザー

退会済みユーザー

総合スコア0

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2017/10/24 08:25

VBAのWorkbooks.Openメソッド中のPasswordオプションに関する質問になります。

任意のパスワードのかかった複数のExcelファイルを読み込み、Excel中のデータを収集するマクロを実装しております。任意のパスワードは時期によって変更が生じるため、収集時期によっては複数のパスワードをコード内に設定する必要があります。
そこでWorkbooks.Openメソッド中のPasswordオプションに複数のパスワード(仮にパスワードA、Bとします)を設定し、Aが設定されたファイル、Bが設定されたファイル双方を一括で収集できるようにしたいです。
※Passwordオプションについては以下の記事を参考としています。
https://msdn.microsoft.com/ja-jp/VBA/Excel-VBA/articles/workbooks-open-method-excel

Passwordオプションを複数設定することは可能でしょうか?

また不可能な場合、パスワードA、Bがかかった複数ファイルの一括収集を行うにはどのようなコードが推奨されるでしょうか?

お手数ですが、ご回答のほどよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

>Passwordオプションを複数設定することは可能でしょうか?
恐らく不可能と思われます。

>また不可能な場合、パスワードA、Bがかかった複数ファイルの一括収集を行うにはどのようなコードが推奨されるでしょうか?
最もシンプルな方法としては、条件分岐を使います。

1.あるファイルをパスワードAで開く処理を実行します。
2.戻り値を確認し、開けたら処理終了、開けなかったら3.に移ります。
3.あるファイルをパスワードBで開く処理を実行します。

このように処理すれば、必ずパスワードAかBでファイルが開けるのであれば、恐らく意図されるような処理ができます。
難しいのは、2.の「開けたか開けなかったか」をどのように判断するか、です。
参考ページにはExcelファイルが開けなかった場合の戻り値が何になるか明記されていませんでしたので実際に試してみてその動作を判定できる方法を掴む必要がありますが、その条件さえ判定できればOKだと思います。

投稿2017/10/24 08:56

akabee

総合スコア1947

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

momon-ga

2017/10/24 09:35

実行時エラー1004が発生しますね<パスワードが違う パスワードが違うのか、その他の要因かは「Err.Description」で判定するしかなさそうですね。
退会済みユーザー

退会済みユーザー

2017/10/25 07:54

akabeeさん、momon-gaさん ご回答ありがとうございます。 例えばあるファイルをパスワードAで開く処理を実行した際、パスワードが異なった場合は条件分岐を用いて、ファイルが開けなかったエラー(Err.Numberプロパティが53)が発生したときには、エラーにより処理を止めるのではなく、ファイルをパスワードBで開く処理としたいです。 このようなことは可能でしょうか? 重ね重ねの質問となってしまいますが、よろしくお願いいたします。
momon-ga

2017/10/27 01:38

Resumeでできるかと。わからなければ新しく質問してください。(コメントでやりとりするのは大変です)
退会済みユーザー

退会済みユーザー

2017/10/27 01:55

Resumeステートメントを用いて対応します。改めてのご回答ありがとうございます。
guest

0

ご自分のコード(今回は関数でしょう)をご提示されてはいかがでしょうか?

投稿2017/10/26 00:49

ExcelVBAer

総合スコア1175

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問