お世話になります。
Excel2010で並べ替えの記録マクロを作りましたが、同ブック内の他のシートでも並べ替えが実行できるようにするにはどうしたらいいでしょうか?
以下がマクロの記述です。
ActiveWorkbook.Worksheets("テスト").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("テスト").Sort.SortFields.Add Key:=Range("D5:D110"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("テスト").Sort.SortFields.Add Key:=Range("E5:E110"), _
SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("テスト").Sort.SortFields.Add Key:=Range("F5:F110"), _
SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("テスト").Sort
.SetRange Range("A4:I110")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
当方は初心者で、同じ質問を検索しましたが、2007以前の解答しか見つけられず、該当する記述を試してみましたがうまくいきませんでした。
どうぞよろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
こんにちは。
2007以前は、ソートメソッドといい、2007以降は、ソートオブジェクトといいます。
しかし、2007以前のソートメソッドでも、互換性はあるはずです。
こちらでやってみましたが、特に問題はないようですね。
他のシートでも使えるということは、汎用性を持たせるということでしょうか。
同じ起点(A4)が同じで、同じ範囲なら、Worksheets("テスト") をActiveSheet にすればよいはずです。ダメだとしたら、どこでエラーがつくのでしょうか?
'//
Sub TestSort1()
'ソートオブジェクト
Dim rng As Range
With ActiveSheet
Set rng = Range("A4:I110")
With .Sort
.SortFields.Clear
.SortFields.Add Key:=rng.Columns(4), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SortFields.Add Key:=rng.Columns(5), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SortFields.Add Key:=rng.Columns(6), _
SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
.SetRange rng
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End With
End Sub
Sub SortTest2()
'Sort メソッド
With ActiveSheet
With .Range("A4:I110")
.Sort Key1:=.Cells(4, 4), Order1:=xlAscending, _
Key2:=.Cells(4, 5), Order2:=xlAscending, _
Key3:=.Cells(4, 6), Order3:=xlDescending, _
Header:=xlYes, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, SortMethod:=xlPinYin
End With
End With
End Sub
'///
WindFaller様
さっそくのご回答をありがとうございました。
「互換性はあるはず」というご指摘に、もう一度データを見直してみたところ、非表示にしている列に項目名と書式を設定していないことに気づきました。
これを修正して、「Worksheets("テスト") をActiveSheet 」に書き換えてみたところ、うまくいきました。
基本的なミスで動作していなかったようで、お恥ずかしい限りです。
書いていただいた記述も二つとも試してみました。
今はまだ内容がよく理解できませんが、今後の参考にさせていただきたいと思います。
ご丁寧に教えていただき、本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel_マクロ_現在開いているシートにマクロを実行したいです 1 2023/02/14 23:54
- Visual Basic(VBA) マクロで最終行を取得してコピーしたい 3 2022/04/06 19:07
- Visual Basic(VBA) エクセル VBA 処理スピードを上げたいのですが。 6 2023/03/31 20:52
- Visual Basic(VBA) Excel VBAで並べ替えをしたい 3 2023/02/25 09:31
- Visual Basic(VBA) VBAが止まります。 1 2022/09/02 14:51
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/22 08:53
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Visual Basic(VBA) ワイルドカード「*」を使うとうまくいかないマクロの添削をお願いします 3 2022/03/26 09:39
- Excel(エクセル) 複数のブックをひとつのブック(複数のシートにまとめる)場合にシートとの順番について 5 2022/12/28 20:47
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
高圧ケーブルの耐圧試験の時の...
-
祖母が亡くなりました。 金曜日...
-
Androidタブレット スワイプで...
-
MsgBoxがコンパイルエラーにな...
-
好きな人とテスト頑張ってと言...
-
オムロンのCX-ONEについて
-
Excel2010 並べ替えマクロを他...
-
NaOHの化学式の表記についてです。
-
伊豆の踊り子・日本人の感性
-
DHCPを同一セグメントに2台に...
-
テストで0点を取ったあなた。...
-
五木の模擬テスト
-
保育士や幼稚園の先生、また小...
-
携帯サイトでプルダウンメニュ...
-
私はよく妬まれます。 理由は、...
-
自分の悪口言ってるのわかった...
-
何もしてないのに嫌われるって……
-
好きな人が悪口を言われている...
-
才能が1つもない人って病気な...
-
振った元カノの悪口を言う男の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
高圧ケーブルの耐圧試験の時の...
-
MsgBoxがコンパイルエラーにな...
-
大学2年です。入学後1年経って...
-
保育士や幼稚園の先生、また小...
-
祖母が亡くなりました。 金曜日...
-
大学の小テストの採点時、点数...
-
小テストの改ざんについてです...
-
オムロンのCX-ONEについて
-
スーパーのアルバイト面接〈テ...
-
「ショーシャンクの空に」の高...
-
Androidタブレット スワイプで...
-
奨学金をもらっている財団法人...
-
HDDのチェック方法
-
学力・学習力到達度診断テスト...
-
大学のテストでchatgptを使いま...
-
DELL…SMARTショートセルフテス...
-
LANテスターを使わずにLANケー...
-
「テスト」を何か別の言い方あ...
-
テストで0点を取ったあなた。...
-
好きな人とテスト頑張ってと言...
おすすめ情報