• ベストアンサー

エクセルのシートの保護について

win2000、エクセル2000を使用しています。 新しいマクロの記録でフィルタオプションの設定とフィルタの全て表示の設定をしました。フィルタオプションの設定は以下の通りです。   リスト範囲→A10~P500   検索条件範囲→A1~P2 そしてボタンをそれぞれ作成してマクロの登録をしました。 この状態では、なんの問題もなく動くのですが、検索条件範囲だけロックのチェックをはずしてシートの保護をかけると、検索は出来るんですが、解除の時にエラーがでます。   実行時エラー'1004':   WorksheetクラスのShowAllDataメソッドが失敗しました。 というエラーです。 エラーが出ず、マクロが動くにはどうしたらよいのでしょうか? おわかりになる方がいましたら、よろしくお願いいたします。

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

  • ベストアンサー
  • kmb01
  • ベストアンサー率45% (63/138)
回答No.4

シートに保護がかかった状態だと、 データー>フィルター>すべて表示、も灰色ですし、 ShowAllDataも実行できないようです。 ShowAllDataの直前直後にUnprotect、Protectを 入れるしかないと思います。

n-shan
質問者

お礼

ありがとうございました。 やはり皆さんがおっしゃるようにシートの保護がひっかかっていました。 フィルタのすべて表示の前にシートの保護を解除するというひと手間をかけてあげるとうまくいきました。

その他の回答 (3)

  • gootaro3
  • ベストアンサー率14% (1/7)
回答No.3

 NO.2のものですが、 フィルターの答えは抽出範囲に書き出す為、 その時抽出範囲がロックされていると書き込めない 為、エラーが起こるのだと思います。  マクロの問題ではないかも知れません。  マクロを作る前に抽出範囲を保護した場合と しない場合を手動で確かめてみると解るかも知れません。

n-shan
質問者

お礼

ありがとうございます。 保護しないとうまくいくんですよ。これが なにか方法を考えてみます。

  • gootaro3
  • ベストアンサー率14% (1/7)
回答No.2

リスト範囲の保護をはずすと動くのではないでしょうか

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.1

シートの保護が原因で エラーになっているのかも しれません。

n-shan
質問者

お礼

早速お返事ありがとうございます。 うーむ、そうですか。 別な方法を考えてみます。

関連するQ&A

専門家に質問してみよう