Excel VBAで、
そのシートが開いていない状態で、
ソートを行いたいとき
マクロで書き出すものは、Selectを使っている。
そこで、selectの代わりに、シート名とレンジを指定して書くと、
「並び替えの参照が~」または、「結合セル~」のエラーになり、
そのシートをActivateしようとすると、
「Range クラスの Select メソッドが失敗しました」
となる場合。
後者については、ここでActiveしても、Selectが出来ないみたい。
じゃあ、どうやるか・・・だけど・・・
例えば今、「マスター」シートにあるボタンから起動して、
「作業用」シートをソートしたいとすると
(1)「作業用」シートのマクロに、ソートするマクロを書く
Public Sub narabikae()
Range("A3:J54").Sort Key1:=Range("A3"), Order1:=xlAscending, Key2:=Range("C3") _
, Order2:=xlDescending, Header:=xlNo, OrderCustom:=1, MatchCase:=False _
, Orientation:=xlTopToBottom, SortMethod:=xlPinYin, DataOption1:= _
xlSortNormal, DataOption2:=xlSortNormal
End Sub
みたいなかんじ。
(2)呼び出し側の「マスター」シートのマクロで、(1)を呼び出す
Call Sheets("作業用").narabikae
そうすると、できるみたいよ・・・
そのシートが開いていない状態で、
ソートを行いたいとき
マクロで書き出すものは、Selectを使っている。
そこで、selectの代わりに、シート名とレンジを指定して書くと、
「並び替えの参照が~」または、「結合セル~」のエラーになり、
そのシートをActivateしようとすると、
「Range クラスの Select メソッドが失敗しました」
となる場合。
後者については、ここでActiveしても、Selectが出来ないみたい。
じゃあ、どうやるか・・・だけど・・・
例えば今、「マスター」シートにあるボタンから起動して、
「作業用」シートをソートしたいとすると
(1)「作業用」シートのマクロに、ソートするマクロを書く
Public Sub narabikae()
Range("A3:J54").Sort Key1:=Range("A3"), Order1:=xlAscending, Key2:=Range("C3") _
, Order2:=xlDescending, Header:=xlNo, OrderCustom:=1, MatchCase:=False _
, Orientation:=xlTopToBottom, SortMethod:=xlPinYin, DataOption1:= _
xlSortNormal, DataOption2:=xlSortNormal
End Sub
みたいなかんじ。
(2)呼び出し側の「マスター」シートのマクロで、(1)を呼び出す
Call Sheets("作業用").narabikae
そうすると、できるみたいよ・・・