[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『Excel Macro ソートの範囲指定』(ふう)
お世話になります。
「マクロの記録」を利用してマクロを作成しました。
1.やろうとしていること。
→ B列〜Q列までにあるデータをB列,D列でソートします。
2.「マクロの記録」でやったデータとオペレーション
→ B7:Q20 までデータがあります。
次のオペレーションをしました。
?@B7にカーソルをセットしました。
?ACtrl+Shift+↓ でB20までいきました。
?BCtrl+Shift+→ でQ20までいきました。
?Cメニューからソートを実施しました。
3.生成されたマクロ。
Range("B7").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("B7:B20"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("D7:D20"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SetRange Range("B7:Q20")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
4.支援いただきたいこと
データの行数は作業毎に異なります。
マクロのスクリプトで行数が固定されてしまっては困ります。
どのように対応すればよろしいでしょうか?
< 使用 Excel:Excel2010、使用 OS:Windows7 >
1列や1行が丸々あいているなら使えないけど...
Range("B7").CurrentRegion.Select
とか。
BJ
申し訳ありませんが、どの部分を置き換えればいいのでしょうか?
※マクロは今回初めて作成した完全ど素人です。
※1セルの空白もありません。
(ふう) 2014/11/17(月) 15:12
>Range("B7").Select
> Range(Selection, Selection.End(xlDown)).Select
> Range(Selection, Selection.End(xlToRight)).Select
↓
With Range("B7").CurrentRegion
.Select
下行 = .Cells(.Cells.Count).Row
End With
Key:=Range("B7:B20") → Key:=Range("B7:B" & 下行)
Key:=Range("D7:D20") → Key:=Range("D7:D" & 下行)
SetRange Range("B7:Q20") → SetRange Range("B7:Q" & 下行)
多分、動作見確認。 BJ
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.