- ベストアンサー
EXCELのオートフィルターマクロについて
初歩的な質問で恐縮です。 sheet1にデータ一覧を作成(仮にシート名を「データシート」とします)し、 sheet2へ検索条件を入力するセルとコマンドボタンを配置し、sheet1のデータを「オートフィルタで検索」するマクロを作成しました。 マクロの検証も行い動作の確認も行いマクロの実行してみると、ちゃんとフィルタ処理されており全て完璧!となりました。 ところが、他人への配布も予定していたので、データの改ざんを防止するため、データシートをシート保護して実行したところ、「ロックされているため実行できません」旨のエラーになってしまいました。 やはり、シートの保護を行なってしまうと、マクロであってもオートフィルタ機能は使用できないのでしょうか? 何か解決(保護状態でもオートフィルタ機能が使用可能)方法はありませんでしょうか? ご教授お願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
シート保護は関係ないはずですよ。 何処かでシートを書き換えるような操作はしていませんか? どうしても解決策が見つからないなら、マクロでシート保護と解除を行う事で解決する方法もあります。
その他の回答 (2)
- kenbow22
- ベストアンサー率48% (135/276)
下記サイトの『シートの保護をかけるとオートフィルタの機能が使えないのを解消するには 』を参考にして下さい。私はこれで使える様になりました。
お礼
ありがとうございました。 参考URLを見てみたら、簡単で的確なマクロがありましたね。 ありがとうございました。 ただ、本ページをリロードし締め切りボタンをクリックする間でのアドバイスであったらしく、ポイント加算差し上げることができませんでした。 ごめんなさい
- papayuka
- ベストアンサー率45% (1388/3066)
シート保護しているとVBAでもオートフィルタは使えないと思いますが、、、 Excel97~2000までしか知らないので、最新バージョンだと出来るのかな? 解決法は#1さんもおっしゃるように、シート解除と保護をマクロ処理ではさむ。 または、シートを保護しない状態で非表示にして、ブックを保護し、抽出結果は別シートに転記する等でも多少は効果があるかも。(VBAで書き換えられたらあきらめる)
お礼
マクロでフィルター処理を行なっているのに、シート保護マクロまでは思いつきませんでした。 早速実行し、無事解決できました。 ありがとうございました