[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『シートの保護をしている常態でオートフィルター』(レリオネ)
[シートの保護をしている常態で、データをオートフィルター機能を使って処理をしたとします。オートフィルター機能の処理した元の状態に戻すマクロを設定していたとします。マクロを実行すると保護を解除しないと実行できませんが、実行できる方法はありますでしょうか?かなり悩んでいます。』(レリオネ)
マクロなら保護で UserinterfaceOnly:=True にしてオートフィルタを EnableAutoFilter=True としたらいいですよ。 わかりにくいけど、↓この中でも使っていますので参考にしてください。 [[20050414215944]]『納期管理表−今日までのデータ印刷実行』(あっちゃん) (SoulMan)
同じ内容なので、こちらに統合しました。(kazu)
おはようございます。 なさりたいことによっては少し違うかもしれませんが、、 とりあえず、こんな感じでどうでしょうか? Option Explicit 'シートに保護をかけた状態で、オートフィルタ機能を使用したい。 'オートフィルタを予め掛けておいてください。 Sub てすと() Dim MyRng As String Dim i As Long With ActiveSheet '保護下でのオートフィルタを有効にします。 .EnableAutoFilter = True 'UserInterfaceOnlyをTrueにしてユーザーの操作のみに保護を掛けます。 .Protect , , , , True 'オートフィルタが掛かっていたら If .AutoFilterMode Then With .AutoFilter 'アドレスを取得します。 MyRng = .Range.Address 'フィルタの数を数えて For i = 1 To .Filters.Count '各フィルタが With .Filters(i) 'Onだったら If .On Then '(マクロを実行した時に、すべて元に戻す) With ActiveSheet.Range(MyRng) .AutoFilter Field:=i End With End If End With Next End With End If End With End Sub 追伸!! 失礼!!最近のExcelは保護が掛かっていても出来るみたいです。 なので、これはExcel2000の場合です。 (SoulMan)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.