ここから本文です

VBA初心者です。シート保護がされたままの状態でオートフィルターが使用できるよう...

アバター

ID非公開さん

2019/6/416:10:22

VBA初心者です。シート保護がされたままの状態でオートフィルターが使用できるようにしたい。

Private Sub Workbook_Open()
で、色々と試したのですが、うまくいかず・・・
開くと同時にパスワードを求められたり(保護を解除するわけにはいきません)・・・
校閲から保護解除するときパスワードがなくても解除できてしまったり(パスワードを知る者だけが隠しセルを見れる状態が絶対条件)・・・


下記がすでに設定されている状態で、こちらは変更不可です。

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Application.ScreenUpdating = False


Sheets("シート").Select
If Sheets("シート").ProtectContents = True Then
Sheets("シート").Unprotect Password:="2019"
End If
Sheets("シート").Columns("B:M").EntireColumn.Hidden = True
Sheets("シート").Protect Password:="2019"

Sheets("入力").Select
If Sheets("入力").ProtectContents = True Then
Sheets("入力").Unprotect Password:="2019"
End If
Sheets("入力").Columns("Y:AA").EntireColumn.Hidden = True
Sheets("入力").Protect Password:="2019"

Application.ScreenUpdating = True

End Sub



宜しくお願いします。

閲覧数:
33
回答数:
4
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

tri********さん

2019/6/416:37:16

これではいけませんか。


Private Sub Workbook_Open()

If Sheets("シート").ProtectContents = True Then
Sheets("シート").Unprotect Password:="2019"
End If
Sheets("シート").Protect Password:="2019", AllowFiltering:=True

If Sheets("入力").ProtectContents = True Then
Sheets("入力").Unprotect Password:="2019"
End If
Sheets("入力").Protect Password:="2019", AllowFiltering:=True

End Sub

アバター

質問した人からのコメント

2019/6/4 17:27:29

コピペ可能な状態での回答ありがとうございました。

とても簡単なことだったんですね。
初心者にはありがたいです。

ベストアンサー以外の回答

1〜3件/3件中

並び替え:回答日時の
新しい順
|古い順

プロフィール画像

カテゴリマスター

hot********さん

2019/6/416:44:37

シートの保護を手動ではなくVBEから「UserInterfaceOnly:=True」を付けてプロテクトをかけると、手動だけプロテクトされます。
プロテクトがかかっていない状態で下記を実行してください。

Sub sample()
Sheets("シート").Protect Password:="2019", UserInterfaceOnly:=True
End Sub

hag********さん

2019/6/416:29:59

シート保護をかける時に「オートフィルタの使用」にチェックを入れると、保護した状態でもオートフィルタを使用できます。

マクロの場合 Protect の時に AllowFiltering:=True を追加します。


なので、


Sheets("シート").Protect Password:="2019"

Sheets("シート").Protect Password:="2019", AllowFiltering:=True


Sheets("入力").Protect Password:="2019"

Sheets("入力").Protect Password:="2019", AllowFiltering:=True


と変更します。

プロフィール画像

カテゴリマスター

tok********さん

2019/6/416:22:20

シートは保護するが、オートフィルタ―は使用可とするならば、

Private Sub Workbook_BeforeClose
の中の
Sheets("シート名").Protect Password:="2019"

Sheets("シート名").Protect Password:="2019",AllowFiltering:=True
とする必要があるんですが、

下記がすでに設定されている状態で、こちらは変更不可です。
保護を解除するわけにはいきません

との事なので無理です。

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる