重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

以下の条件でのマクロの組み方をご教示ください。
Excel2010を使用しています。

①Application.FindFileでファイルを選択。
(デスクトップ上のフォルダ内を想定)

②選択したファイルがパスワード付きの場合
→指定のパスワードでブックの保護を解除。
→ファイルを開く。

③選択したファイルがパスワードなしの場合
→そのままファイルを開く。

※Application.FindFileで選択するファイルは、パスワードの有無が混在。
※パスワードはすべて同じ。


ActiveWorkbook.Unprotect "パスワード"を
Application.FindFileの後ろに入れただけでは、パスワードが解除されません。

ちなみに
ActiveWorkbook.Unprotect Password:=”パスワード”
でもダメでした。

途中にどのような記述をすればうまくいくでしょうか。

いろいろと調べて試してみましたが、「選択したファイルがパスワード付き」の時のパスワード解除の方法がわかりません。

ご教示のほど、よろしくお願いいたします。

A 回答 (1件)

こんばんは。



>いろいろと調べて試してみましたが、
ほとんど、どこにも出ていないような気がします。

以下は、ご質問と趣旨が違うのは、FineFile やUnprotect は使いません。

それと、FindFile は、ダイアログボックスは出ますが、一気に、オープンに行ってしまうので、パスワード付きですと、聞いてくるはずです。オプション。スイッチがあったのかは、覚えがありません。

以下は現在、Excel 2010 のみで検査されています。

'// 一般的には、標準モジュールです。
Const PSW As String = "abc" 'パスワード
Sub TestFindFile()
Dim fn As Variant
fn = Application.GetOpenFilename(FileFilter:="Excel Files (*.xls*), *.xls*") 'フィルターが不要なら外してください。
On Error Resume Next
Workbooks.Open fn, , , , "", ""
If Err.Number > 0 Then
 Workbooks.Open fn, , , , PSW, PSW
End If
End Sub
    • good
    • 0
この回答へのお礼

やりたかったことが出来ました!
ご回答いただき、本当にありがとうございます!

お礼日時:2018/08/26 16:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!