「覚え間違い」を教えてください!

QNo.3901563で回答いただき、Excelの試用で保護後のオートフィルタは使えないのはわかりました。
そこで予めオートフィルタを設定し、シートに保護をかけました。
Excelの画面上ではオートフィルタは使用できます。
マクロよりオートフィルタの抽出条件を変更するコマンドを実行すると「保護されたシートに対して、このコマンドは実行できません」と表示されます。コマンドは新しいマクロの記録で操作を記録したものです。記録したときは特にエラーはでませんでした。

Selection.AutoFilter Field:=2, Criteria1:="AAA"

マクロのコマンドでは保護のかかったシートのオートフィルタの抽出条件を変更することは出来ないのでしょうか。
マクロの前後にシート保護を解除するコマンドを入れようかとも思ったのですが、保護にパスワードがかかっており、本末転倒となるもので。

A 回答 (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
    • good
    • 0
この回答へのお礼

教えていただいた記述をブックを開くときに実行することでマクロが動くようになりました。
詳しく説明ありがとうございます。

お礼日時:2008/03/31 13:20

マクロでも保護の掛かったシートの状態を操作できません。



対策としては、マクロの最初で保護を解除し、実行後に保護を掛けます。
別の方法としては、ブック起動後に保護されたシートに対して「マクロは有効」という呪文(コード)を1回だけ実行する方法もあります。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2008/03/31 13:15

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


おすすめ情報