- ベストアンサー
Excel2003でシート保護(オートフィルタ使用にはチェック)するとマクロのオートフィルタでエラーになる
QNo.3901563で回答いただき、Excelの試用で保護後のオートフィルタは使えないのはわかりました。 そこで予めオートフィルタを設定し、シートに保護をかけました。 Excelの画面上ではオートフィルタは使用できます。 マクロよりオートフィルタの抽出条件を変更するコマンドを実行すると「保護されたシートに対して、このコマンドは実行できません」と表示されます。コマンドは新しいマクロの記録で操作を記録したものです。記録したときは特にエラーはでませんでした。 Selection.AutoFilter Field:=2, Criteria1:="AAA" マクロのコマンドでは保護のかかったシートのオートフィルタの抽出条件を変更することは出来ないのでしょうか。 マクロの前後にシート保護を解除するコマンドを入れようかとも思ったのですが、保護にパスワードがかかっており、本末転倒となるもので。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 '標準モジュールで、自動設定 Sub Auto_Open() Const PWS As String = "PS" 'パスワード With Worksheets("Sheet2") .Unprotect PWS .Protect PWS, UserInterFaceOnly:=True '以下をつければ、手動でもオートフィルタは使えます。 .EnableAutoFilter = True End With End Sub '----------------------------------------------- UserInterFaceOnly:=True のオプションをつければ、マクロで処理できますし、また、EnableAutoFilter にすれば、保護された状態で、オートフィルタは使えます。 なお、オートフィルタは、こんな感じです。 Sub Test1() With Range("A1").CurrentRegion .AutoFilter Field:=2, Criteria1:="aaa" End With End Sub
その他の回答 (1)
- hana-hana3
- ベストアンサー率31% (4940/15541)
マクロでも保護の掛かったシートの状態を操作できません。 対策としては、マクロの最初で保護を解除し、実行後に保護を掛けます。 別の方法としては、ブック起動後に保護されたシートに対して「マクロは有効」という呪文(コード)を1回だけ実行する方法もあります。
お礼
ありがとうございました。
お礼
教えていただいた記述をブックを開くときに実行することでマクロが動くようになりました。 詳しく説明ありがとうございます。