• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excelシートの保護にパスワードが設定されているか)

Excelシートの保護にパスワードが設定されているか

このQ&Aのポイント
  • Excelシートの保護にパスワードが設定されているかを判断する方法について教えてください。
  • Office2003ではパスワードの解除方法が異なりましたが、Office2007では異なるパスワードで保護を解除しようとすると確認のメッセージボックスが表示されます。
  • Bookのパスワード判断の方法についても教えてください。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

やっと知人のExcel2007を使わせてもらえたので試しました。 パスワードbbbで保護したシートに以下のマクロを走らせて見ました。 Sub test02() On Error GoTo line ActiveSheet.Unprotect Password:="aaa" flg = True line: If Not flg Then MsgBox "パスワードがちがいますね" End If End Sub で、パスワード確認のメッセージBOXも出ずに、 "パスワードがちがいますね" が出ましたよ。

perisisi
質問者

補足

わざわざ、検証ありがとうございます。 1.パスワード設定違い の例だと確かにそれで良いですが 2.パスワード空白 を想定して 下記のように、左記にパスワードが空白じゃなかどうかという ロジックを入れました。 このロジックだと2.ではうまくいくのですが1.では パスワードを求められました。 ActiveSheet.Unprotect Password:="" が ダメなように思いますので、 ActiveSheet.Unprotect Password:="ダミーパスワード"で 保護を解除して、解除できれば、パスワードが設定されていない という判断にしようかと考えています。 いろいろお手数をおかけして、ありがとうございました。 Sub ChkPass2() '先にパスワードが空白じゃないかを確認して '処理を行う On Error Resume Next ActiveSheet.Unprotect Password:="" If Err = 0 Then MsgBox ("パスワードが設定されていません") End If On Error GoTo Err_Rtn '正しいパスワードかどうか? ActiveSheet.Unprotect Password:="aa" End Err_Rtn: MsgBox ("ERROR") End Sub

その他の回答 (2)

回答No.3

回答者のみなさんがサンプルを示しているのに、質問者が肝心のコードを表示しないのはおかしいですね。 >1.パスワードを空白で解除する の部分だけのコードのみを実行してもその現象は再現するのでしょうか? それと一応、OSの情報も提供すべきかと。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

質問者さんは何をなさりたいのでしょうか? 「特定のパスワード」で保護されていることを確認されたいなら、2007が手元にないので試せず回答できないのですが、もし「保護されていること」を確認されたいなら シートなら ActiveSheet.ProtectContents BOOKなら ActiveWorkbook.ProtectStructure で、それぞれ保護されていればTRUEが返ります。

perisisi
質問者

補足

説明足らずですみません。 該当のシートが保護されており、 かつパスワードが例えば「aaa」のもののみ 処理を実施したいのです。 下記のものは、エラーとして処理したいのです。 (1)保護されているが、パスワードが設定されていない。 (2)保護されているが、パスワードが「aaa」でない。 (3)保護されてない。 教えていただいた、ProtectContentsでは (3)ははじけますが、(1)(2)が検出できません。 Office2003では、先に書いたように ON ERROR RESUME NEXTにより ERRORを検地して判断していますが Office2007では、パスワードの入力を促すI NPUTBOXが表示されてしまいます。

関連するQ&A