• ベストアンサー

フィルタオプションとシートの保護

Excel2003を使用して、あるシートに以下の設定を行なっています。 (1) 「入力規則」のドロップダウンリストからデータを選択入力する設定 (2) (1)で選択入力されたデータを抽出条件にしたフィルタオプションを設定(抽出先は指定した範囲) (3) 「マクロの記録」で(2)の作業を記録し、作成したマクロにボタンを作りボタンを押すと抽出を実行するよう設定 ※シート1に元データがあり、シート2が問題のシートになります。 このシートを保護し、他者に変更されないようにしたいのですが、保護をしていると抽出ができなくなってしまいます。 オートフィルタなら有効にする設定があるようですが、フィルタオプションは有効に出来ないのでしょうか? 他のシートを抽出先にせず、これらを実行したいのですが…。 何か良い方法があればご伝授願います。 尚、今回マクロを設定してはおりますが、実際に自分で記述して書くほどの知識はありません。 もしもマクロを使用しなければならない場合はお手数ですが、その詳細も教えて頂ければ幸いです。 宜しくお願い致します。

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.3

マクロの先頭で保護の解除を行い、最後に保護を実行すればいいのでは? '保護の解除 Worksheets("Sheet1").Unprotect ("Pasword") '保護 Worksheets("Sheet1").Protect Pasword:"Pasword" ※保護の方は実際には、対象の設定などの項目があるので、新しいマクロの記録等で記録したものを使うといいでしょう。

Dona1d
質問者

お礼

恐れ入ります、[Worksheets("Sheet1").Unprotect ("Pasword")]を自分に適した情報に修正することを行なっておりませんでした。(=_=;) おかげ様で無事解決致しました♪ 有難うございました☆

Dona1d
質問者

補足

やはり何度やっても、パスワードを聞いてきます。 行なった方法は... (1)シートが保護された状態で、「マクロ」→「マクロの記録」 (2)「ツール」から「シート」→「シート保護の解除」→パスワード入力 (3)フィルタオプションで抽出実行 (4)ツール」から「シート」→「シート保護」→パスワード入力 (5)記録終了 何か誤りがございますでしょうか?

その他の回答 (2)

  • ipsum11
  • ベストアンサー率21% (55/251)
回答No.2

ボタン押下して抽出を実行する前にシートの保護を解除し、実行後にシートを保護するようにする方法ではだめですか? シートの保護はマクロの記録で簡単にできます。

Dona1d
質問者

補足

ご回答有難うございます。 お教え頂いた様に、フィルタオプションの前に保護の解除を実行してみましたが、パスワードを聞いてくるダイアログが出てきてしまいます。 私のやり方が悪いのでしょうか...?

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

ActiveSheet.Protect UserInterfaceOnly:=True マクロの先頭(あるいはブック起動時)に上記のような記述をすると、プロテクトを解除する事無く該当シートをVBAで変更出来ます。

Dona1d
質問者

補足

早速ご回答有難うございます。 折角ご回答頂いたのですが、勉強不足で意味が解りません(>_<)。 詳しく教えて頂けると助かります…。

関連するQ&A