プロが教える店舗&オフィスのセキュリティ対策術

大変お世話になっております。

以下のVBAコードですが、

Sub 先頭行を固定オートフィルター設定()
Rows(2).Select
ActiveWindow.FreezePanes = True
ActiveSheet.Range("A1").AutoFilter '// 設定
End Sub

このコードは、アクティブシートにしか適用されません。

1)選択をした全てのシートに適用をしたいです
2)同BOOK(仮に”BOOK1”とします)の全ての表示しているシートに適用したいです(非表示シートは適用せずに…)
3) 同BOOK(仮に”BOOK1”とします)の全てのシートに適用したいです
(開いているBOOK全てに適用は避けたいです…)

1)から 3)がどのようなコードとなるのかお教え頂けると有難いです。
(1)2)3)の何れかのコードでも差支えございません。)

ご回答を心よりお待ちしております。
どうぞ宜しくお願い申し上げます。

A 回答 (1件)

こんばんは。



例えば、下記の様な感じでしょうか?


Sub 選択されているシート名を取得する()
Dim sh As Worksheet
For Each sh In ActiveWindow.SelectedSheets
MsgBox sh.Name
Next
End Sub


Sub 表示されている全てのシート名を取得する()
Dim sh As Worksheet
For Each sh In ThisWorkbook.Sheets
If sh.Visible = True Then ’表示されているシートか?
MsgBox sh.Name
End If
Next
End Sub


MsgBox sh.Name の部分を、sh.selectにして、その下に、質問者さんの
コードを入れれば、できるかと思います。

3)は、非表示のシートも、処理したいという事でしょうか?
もしそうなら、表示されている全てのシート名を取得するを少し変更すれば
可能かと思います。
    • good
    • 0
この回答へのお礼

mygoonickname様…!
大変お世話になっております。
お陰様で、2つのコード共、簡単に出来ました…!
本当に助かります…!
ご回答を下さいまして、心より感謝申し上げます…!
また是非宜しくお願い致します!

お礼日時:2022/11/12 18:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!