Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12 / 13065 ツリー ←次へ | 前へ→

【79536】【VBA】ランダムな指定範囲のソートについて エクセル(自称)中級者 17/12/11(月) 23:29 質問[未読]
【79537】Re:【VBA】ランダムな指定範囲のソートにつ... BJ 17/12/12(火) 9:14 発言[未読]
【79538】Re:【VBA】ランダムな指定範囲のソートにつ... エクセル(自称)中級者 17/12/12(火) 12:04 お礼[未読]

【79536】【VBA】ランダムな指定範囲のソートにつ...
質問  エクセル(自称)中級者  - 17/12/11(月) 23:29 -

引用なし
パスワード
   幾ら調べても分からない為、こちらで質問させて頂きます。

Excel2016です。
シート上にボタンを配置し、クリック1回で並べ替えをしたいと思っています。
困っているのが、並べ替えの指定範囲が毎回違うという事です。
マクロの記録で行うと以下のコードが作成されます。

1 Rows("7:8").Select
2 ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
3 ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("B7:B8"), _
4   SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
5 With ActiveWorkbook.Worksheets("Sheet1").Sort
6   .SetRange Range("A7:Y8")
7   .Header = xlGuess
8   .MatchCase = False
9   .Orientation = xlTopToBottom
10   .SortMethod = xlPinYin
11   .Apply
12 End With

1行目のRowsは毎回変わります。
上記のコードでは「7:8」になっていますが、次は「10:15」だったり、次は「17:30」だったりします。
その為3行目と6行目のRange範囲も変わります。
只、6行目の「A*:Y*」とB列という事だけは固定です。

結果行いたい作業が、
 1.セルを行で選択
 2.ボタンで並べ替え
だけになるのですが、セルを選択した場所の取得が中々上手く出来ません。

良い解決策がお分かりであれば、ご助力ください。
宜しくお願い致します。

【79537】Re:【VBA】ランダムな指定範囲のソートに...
発言  BJ  - 17/12/12(火) 9:14 -

引用なし
パスワード
   ヒントだけになるけど。

Rw = Selection.EntireRow.Address(0, 0) '選択したセルの行
Rows(Rw).Select

SrtkeyAd = Rows(Rw).Columns(2).Address(0, 0) '選択したセルの行のB列
'Range(SrtkeyAd).Select
MsgBox "ソートするキーの範囲は、" & SrtkeyAd

【79538】Re:【VBA】ランダムな指定範囲のソートに...
お礼  エクセル(自称)中級者  - 17/12/12(火) 12:04 -

引用なし
パスワード
   BJさん

レス、ありがとうございます。
ヒントだけでも十分で、無事自分の行いたい事が出来ました!

ありがとうございました。

12 / 13065 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free