[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『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.