前提・実現したいこと
VBAで指定範囲を並べ替えしたいです。
この指定範囲というのが
Shift + ctrl + ↓(2回)
Shift + ctrl + →(2回)
で選択された範囲なのですが、初心者ゆえわからない状態です。
データ数はいつも変化するので、このショートカットキーで行った範囲を取得したい場合どうすればいいでしょうか?
マクロの記録ではどうしてもRangeで選択範囲ではなく、セルを指定する範囲となってしまいます。
該当のソースコード
マクロで記録していた内容を貼り付けます。操作としては
・最初にB3セルに置く
・Shift + ctrl + →(2回)
・Shift + ctrl + ↓(2回)
・並べ替え⇒以下のように設定してOK
最優先されるキー:列B
並べ替えのキー:値
順序:昇順
Sub Macro1 Sheets("A").Select Range("B3").Select Range(Selection, Selection.End(xlDown)).Select Range(Selection, Selection.End(xlDown)).Select Range(Selection, Selection.End(xlToRight)).Select Range(Selection, Selection.End(xlToRight)).Select ActiveWorkbook.Worksheets("A").Sort.SortFields.Clear ActiveWorkbook.Worksheets("A").Sort.SortFields.Add Key:=Range( _ "B4:B2003"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _ xlSortNormal With ActiveWorkbook.Worksheets("A").Sort .SetRange Range("B3:AI2003") .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub
回答3件
あなたの回答
tips
プレビュー