[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『シートの保護をしている常態でオートフィルター』(レリオネ)
[シートの保護をしている常態で、データをオートフィルター機能を使って処理をしたとします。オートフィルター機能の処理した元の状態に戻すマクロを設定していたとします。マクロを実行すると保護を解除しないと実行できませんが、実行できる方法はありますでしょうか?かなり悩んでいます。』(レリオネ)
マクロなら保護で 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.