- ベストアンサー
エクセルのシートの保護について
win2000、エクセル2000を使用しています。 新しいマクロの記録でフィルタオプションの設定とフィルタの全て表示の設定をしました。フィルタオプションの設定は以下の通りです。 リスト範囲→A10~P500 検索条件範囲→A1~P2 そしてボタンをそれぞれ作成してマクロの登録をしました。 この状態では、なんの問題もなく動くのですが、検索条件範囲だけロックのチェックをはずしてシートの保護をかけると、検索は出来るんですが、解除の時にエラーがでます。 実行時エラー'1004': WorksheetクラスのShowAllDataメソッドが失敗しました。 というエラーです。 エラーが出ず、マクロが動くにはどうしたらよいのでしょうか? おわかりになる方がいましたら、よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
シートに保護がかかった状態だと、 データー>フィルター>すべて表示、も灰色ですし、 ShowAllDataも実行できないようです。 ShowAllDataの直前直後にUnprotect、Protectを 入れるしかないと思います。
その他の回答 (3)
- gootaro3
- ベストアンサー率14% (1/7)
NO.2のものですが、 フィルターの答えは抽出範囲に書き出す為、 その時抽出範囲がロックされていると書き込めない 為、エラーが起こるのだと思います。 マクロの問題ではないかも知れません。 マクロを作る前に抽出範囲を保護した場合と しない場合を手動で確かめてみると解るかも知れません。
お礼
ありがとうございます。 保護しないとうまくいくんですよ。これが なにか方法を考えてみます。
- gootaro3
- ベストアンサー率14% (1/7)
リスト範囲の保護をはずすと動くのではないでしょうか
- taknt
- ベストアンサー率19% (1556/7783)
シートの保護が原因で エラーになっているのかも しれません。
お礼
早速お返事ありがとうございます。 うーむ、そうですか。 別な方法を考えてみます。
お礼
ありがとうございました。 やはり皆さんがおっしゃるようにシートの保護がひっかかっていました。 フィルタのすべて表示の前にシートの保護を解除するというひと手間をかけてあげるとうまくいきました。