• ベストアンサー
  • 困ってます

VBAでブック保護非保護を判定するには?

  • 質問No.2285577
  • 閲覧数3340
  • ありがとう数6
  • 回答数3

お礼率 70% (118/167)

エクセルVBAでブックが保護されているのかどうかを判定するにはどう書けばいいのでしょうか?

If ActiveWorkbook.Protect Then

ではだめでした。

また、シート保護の判定方法も教えてください。

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

  • 回答No.2
  • ベストアンサー

ベストアンサー率 62% (785/1258)

こんにちは。こんな感じで判別できますけど、もっと簡単な方法あるのかな?

・ブックが保護されているか?

  With ActiveWorkbook
    If (.ProtectStructure Or .ProtectWindows) Then
      MsgBox "ブックは保護されてます"
    Else
      MsgBox "ブックは保護されてません"
    End If
  End With

・シートが保護されているか?

  With ActiveSheet
    If (.ProtectContents Or .ProtectDrawingObjects Or .ProtectScenarios) Then
      MsgBox "シートは保護されてます"
    Else
      MsgBox "シートは保護されてません"
    End If
  End With
お礼コメント
moooon

お礼率 70% (118/167)

お礼がおそくなり大変申し訳ありませんでした。
ありがとうございました。
投稿日時:2006/08/24 11:29

その他の回答 (全2件)

  • 回答No.3

ベストアンサー率 44% (1383/3079)

「ツール」→「保護」→「ブックの保護」を選択すると
 □シート構成
 □ウィンドウ
があります。シート構成に対応するプロパティが
 ActiveWorkbook.ProtectStructure

ウィンドウに対応するプロパティが
 ActiveWorkbook.ProtectWindows
になります。どちらもタイプはBooleanです
お礼コメント
moooon

お礼率 70% (118/167)

お礼がおそくなり大変申し訳ありませんでした。
ありがとうございました。
投稿日時:2006/08/24 11:30
  • 回答No.1

ベストアンサー率 58% (518/883)

MsgBox "シート構成:" & ActiveWorkbook.ProtectStructure & Chr(10) & _
     "ウィンドウ:" & ActiveWorkbook.ProtectWindows
で、判断できます。(Excel2000)

シート構成が保護されていれば、は、
If ActiveWorkbook.ProtectStructure = True Then
でいかがでしょうか。
お礼コメント
moooon

お礼率 70% (118/167)

お礼がおそくなり大変申し訳ありませんでした。
ありがとうございました。
投稿日時:2006/08/24 11:28
関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ