プロが教えるわが家の防犯対策術!

大変お世話になっております。
以下ですと、Sheet3に対してしか実行出来ないマクロとなってしまいます…。
シート名に関わらず、開いているシートに対してマクロを実行するコードに変更をお願い申し上げます。
ご回答を、心よりお待ちしております。
どうぞ宜しくお願い申し上げます。
(Win11 Office365です)



Sub Macro11()
'
' Macro11 Macro
'

'
ActiveWorkbook.Worksheets("Sheet3").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet3").Sort.SortFields.Add2 Key:=Range("C2:C323" _
), SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:="〇,×", _
DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Sheet3").Sort.SortFields.Add2 Key:=Range("G2:G323" _
), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet3").Sort
.SetRange Range("A1:FI323")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub

A 回答 (1件)

こんばんは



現在のアクティブなシートで良ければ、

シートを指定している
>ActiveWorkbook.Worksheets("Sheet3")
の部分を
 ActiveSheet
に変えれば良いのでは?


最初に、
 Set sht = ActiveSheet
などとして変数に代入しておいて、後はそれを用いるか、あるいは
 With ActiveSheet
   ~~~
 End With
として記述する方法もあります。
    • good
    • 1
この回答へのお礼

fujillin様
いつも大変お世話になっております…!
『シートを指定している
>ActiveWorkbook.Worksheets("Sheet3")
の部分を
 ActiveSheet
に変えれば良いのでは?』
お教え下さいました通りに変更しました所、とても上手くいきました…!!
マクロの記録を初めて使用し、実行しましたが、fujillin様のアドバイスのお陰です…! マクロの記録が、結構良い、かなり良いことを実感しました!!
fujillin様、いつも本当に有難うございます…!
また質問をさせていただきますため、是非宜しくお願い申し上げます!
今後共、どうぞ宜しくお願い申し上げます!!

お礼日時:2023/02/15 20:14

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

このQ&Aを見た人はこんなQ&Aも見ています