- ベストアンサー
[Excel]保護されたシートのマクロによるオートフィルタ有効設定について
先日、こちらのカテゴリでお世話になった者です。 ご質問に関して、前記事の参照が必要となるため、以下に記載致します。 【参照元】http://okwave.jp/qa2538402.html 参照元のご回答を元に、無事商品管理のブックを完成させました。 その後、よく調べれば当たり前の事だったようなのですが、保護をかけると オートフィルタが動作しない事が分かりました。 私なりに調べて、ブックが開かれるタイミングで.EnableAutoFilterの記述が 必要になる事がわかり、参照元ANo.2内の中を以下のようにしてみました。 Private Sub Workbook_Open() On Error Resume Next With ThisWorkbook .Unprotect Password:=BOOK_PASSKEY .EnableAutoFilter = True '追記した行です .IsAddin = False .Saved = True End With If mApp Is Nothing Then Set mApp = Application ' カスタムメニューをセルの右クリックに追加 Call AddCustomMenu End Sub これではエラーが出て動かず、更に調べました所、Excel2003などの比較的 新しいバージョンでは、保護の際にオートフィルタの有効無効のチェックが 出来る事がわかりました。 私はExcel2000なので、そもそもが記述をしても仕様上、保護下でのオート フィルタは無理なのでしょうか? Workbook_Open()のすぐ下の行に記述すると、1度保護を解除してかけ直せば 保護下でもオートフィルタが動くのですが、保存して再度ブックを開くと オートフィルタはまた無効になってしまいました。 今一歩と思うのですが、どうしてもうまく出来ません。 どのように追記をすればオートフィルタが可能になるでしょうか? または、無理なのでしょうか。 よろしくご教授下さい。
- みんなの回答 (3)
- 専門家の回答
関連するQ&A
- [EXCEL]保護されたシートでオートフィルタ利用可能にしたいのですが
いかのURLにも同じような質問があり、 http://oshiete1.goo.ne.jp/qa2550996.html それにしたがって、シート保護でもオートフィルタ可能にするための VBA記述を行いましたが、オートフィルタが利用可能になりません。 シートの保護はできているようですし、エラーもでません。 記述したコードは以下になります。 Sub Workbook_Open() Dim Sh As Worksheet For Each Sh In Worksheets Sh.Unprotect Password:="fukuri" Sh.EnableAutoFilter = True Sh.Protect Password:="fukuri", userInterfaceOnly:=True Next Sh End Sub なにか、不足している記述があるのでしょうか? もし、わかる方がいらっしゃったら是非アドバイスいただけないでしょうか? 私自身、VBAを利用するのがはじめてで勉強不足にもかかわらず 大変恐縮ですが、ご回答いただければ幸いです。 宜しくお願いいたします。
- 締切済み
- SE・インフラ・Webエンジニア
- エクセル保護でのグループ化、フィルタの使用方法
エクセル2007でセルの保護の状態でグループ化の表示切替とオートフィルタを使用する方法を教えてください。 現在ファイル内で特定の列に保護をかけています。 保護により無効となってしまったグループかの表示・非表示はVBAで 切替られるようにしました。 Private Sub Workbook_Open() With Worksheets("シート名") .EnableOutlining = True .Protect UserInterfaceOnly:=True End With End Sub 更に、オートフィルタを使用したいのですが、 保護を行う時に「オートフィルタの使用」にチェックを入れているのに 選択が不可能な状態です。 すべての条件を満たすにはどのような方法があるのでしょうか。 お分かりになる方がいられましたらご教授ください。
- 締切済み
- オフィス系ソフト
- Excel2003でシート保護(オートフィルタ使用にはチェック)するとオートフィルタが使えない
Excel2003を使用しています。 シートの保護でオートフィルタの使用にチェックを入れて保護をかけた後、データ - フィルタ - オートフィルタ が灰色に表示され、使用出来ません。 フィルタ設定 → シート保護だとオートフィルタを使用できます。 Excelの試用でオートフィルタの使用にチェックを入れて保護をかけても、保護後にはオートフィルタの設定は出来ないのでしょうか?
- 締切済み
- オフィス系ソフト
- Excelのオートフィルタ→シート保護→共有について
Excel2000のブックを所内で共有で使用するのに 下記サイトのマクロを入力しました。 http://kiyopon.sakura.ne.jp/situmon/index.htm Private Sub Workbook_Open() Dim Sh As Worksheet For Each Sh In Worksheets Sh.EnableAutoFilter = True Sh.Protect UserInterfaceOnly:=True Next Sh End Sub 入力後ブックの共有を行い、一度閉じて 再度ファイルを開くと 実行時エラー'1004':'Protect'メソッドは失敗しました:Worksheet'オブジェクト とメッセージが出ます。 共有にすることにより、このメッセージが出ると思われますが、 恥ずかしながらマクロの事は全く分かりません。 ご教授よろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- Auto_Openマクロ
Excel2003のマクロで、 Sub Auto_Open() ActiveSheet.DisplayAutomaticPageBreaks = True End Sub としているのですが、起動時に開くシートにしか適用されません。 ページが増えていくのでブック内の全シートに適用するにはどうしたらいいでしょうか?
- 締切済み
- その他MS Office製品
- エクセルVBA 保護シート&フィルタ実行 全シート
VBA超初心者です。 たくさんのシートのあるエクセルで、 シート保護後もフィルタを使用できるようにVBAを設定したいと思ってます。 (現在エクセル2000を使用してます) ネットで調べてVBAを設定してみました。 しかし下記のようにするとコンパイルエラーになってしまうのですが、 正しい方法を教えていただけると助かります。 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.Select .Unprotect .EnableAutoFilter = True .Protect UserInterfaceOnly:=True End With End Sub Private Sub filter() On Error Resume Next Selection.AutoFilter End Sub
- ベストアンサー
- オフィス系ソフト
- オートフィルタがかかっていて、なおかつ抽出中なら
オートフィルタがかかっていて、なおかつ抽出中なら、 という状態をvbaで取得する方法はありますか? Sub Sample() If ActiveSheet.AutoFilterMode = True Then End If End Sub これだと、 オートフィルタがかかっているだけでも、反応してしまいます。 「行番号が青色になってるのなら」 と同じ状態にしたいのですが、 どういうコードになりますか?
- ベストアンサー
- オフィス系ソフト
- Excel2003オートフィルタの有無を確認マクロ
オートフィルタを設定するときは、 Selection.AutoFilter を使ってもできますが、これですとオートフィルタがオン・オフどちらの状態かわかりません。 これを、オートフィルタをオンにしますよ、オフにしますよ、という命令を送るように命令を一行 で書くことは可能なのでしょうか? もし手順で書くなら(http://www.asahi-net.or.jp/~zn3y-ngi/YNxv208.html)から引用しますが、 次のようにできるようです。 /-------------------------------------------/ Private Sub オートフィルタの状態を調べて切り替える() If Worksheets("SSS").AutoFilterMode Then 'オートフィルタモードなら MsgBox "オートフィルタは現在オンです。[OK]ボタンをクリックするとオフにします" オートフィルタのオンオフを切り替える Else MsgBox "オートフィルタは現在オフです。[OK]ボタンをクリックするとオンにします" オートフィルタのオンオフを切り替える End If End Sub
- ベストアンサー
- その他MS Office製品
- [Excel2000]auto_closeを止めさせるには
Excel2000で、 特定のボタンを押した場合以外の閉じる処理を キャンセルさせたいのですがうまくいきません sub ボタン押() flg = true end sub sub auto_close() if flg <> true then msgbox "AAA" exit sub end if end sub これでは、どーやってもそのまま終了してしまいます。 なにか良い方法はないでしょうか・・・ よろしくおねがいします。
- ベストアンサー
- オフィス系ソフト
- シートを保護した状態で2つのシートでオートフィルタを使う方法
Excel2000です。 シートを保護した状態でオートフィルタを使用する方法を教えてください。 シートはA,B,C,D,Eの5つあり、その内のAとBのみオートフィルタを使用したいのですが。
- ベストアンサー
- オフィス系ソフト
お礼
前記事に続きましてのご回答、誠にありがとうございます。 再導入に手間取ってしまい、半日ほど掛かってしまいましたが、 先ほど無事全ての機能が動作する事を確認できました。 管理者用の一括機能や、画像の縮小選択などは大変重宝を させて頂いております。 近日中に実業務で導入する運びとなりました事をご報告させて 頂くとともに、改めてお礼を申し上げます。