dポイントプレゼントキャンペーン実施中!

エクセルのシートにフィルタをかけたあと、シート保護すると
フィルタ機能が効かなくなります。
これって避けられない仕様なのでしょうか?

保護したシートの中身を参照したいのですが....

A 回答 (2件)

Excelのバージョンが不明ですが、2002以降であれば、シートの保護


をかける際に「このシートのすべてのユーザーの許可する操作」欄で
「オートフィルタの使用」をONにしておけば、シートを保護しても
それまでと同じように通り、フィルタ機能を使えます。

Excel2000以前の場合は、残念ながら、方法はありません。

ソフトのご質問をなさる際には、必ず、バージョンの記入もお願い
します。
    • good
    • 0
この回答へのお礼

お礼が遅くなり申し訳ありません。
エクセルのバージョンはXPでした。

教えていただいた内容で解決しました、ありがとうございました。

お礼日時:2007/11/15 14:21

こんにちは。


ExcelXP以降はシート保護時に[オートフィルタの使用]を許可できるようになったので、
([このシートのすべてのユーザーに許可する操作]の欄)
お使いのバージョンは2000ですか?

2000の場合は、マクロを使う方法でしか対処できません。
以下、マクロでも構わなければ。

[Alt]キー+[F11]キー同時押しすると、VisualBasicEditor(VBE)が起動します。
http://www.sanynet.ne.jp/~awa/excelvba/kouza/cha …
↑この図を参考に、左側のプロジェクトエクスプローラの[ThisWorkbook]をダブルクリックして
開いた無地シートのようなものに以下をコピーペーストします。

Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
  Application.CommandBars("Cell").Reset
End Sub

Private Sub Workbook_Open()
  With Application.CommandBars("Cell").Controls.Add( _
           Type:=msoControlButton, Before:=1, Temporary:=True)
    .Caption = "AutoFilter"
    .OnAction = "ThisWorkbook.filter"
  End With
  With Worksheets("Sheet1") '←実際に保護したいシート名に変更が必要です。
    .Unprotect
    .EnableAutoFilter = True
    .Protect UserInterfaceOnly:=True
  End With
End Sub

Private Sub filter()
  On Error Resume Next
  Selection.AutoFilter
End Sub


そのBookを保存して閉じ、再度開くとセル右クリックメニューに
"AutoFilter"
というメニューが追加されますから、そこから実行します。
    • good
    • 0
この回答へのお礼

お礼が遅くなり、申し訳ありません。

マクロまで作成いただき、ありがとうございました。
#2の方の回答で無事、やりたいことができました。

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

お礼日時:2007/11/15 14:24

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