マクロ超初心者です。エクセル2003においての質問です。
作成した〔日付順〕のボタンを押すことで並べ替えをしたいと思い,以下のマクロを「記録」から作成したのですが,
9行~153行の間に行を挿入した場合,並べ替えの対象となる行も同じように増えてほしいのですが,常に9行~153行のままで増えてくれません。
可能なら9行より前に行を挿入した場合も同じように可変して欲しいです。
全くのマクロ初心者でどう変えればいいのか分かりません。
また,「記録」から作成したマクロには操作内容が全て存在するようなのですが,
消してもいい不要な部分も分からないので教えて頂ければありがたいです。
よろしくお願いします。
(出来れば以下を書き直して全て貼り付けて頂けるとかなり助かります。)
sub 日付順()
Rows("9:153").Select
Selection.Sort Key1:=Range("I9"),Order1:=xlAscending,Key2:=Range("J9") _
,Order2:=xlDescending,Header:=xlGuess,OrderCustom:=1,MatchCase:= _
False,Orientation:=xlTopToBottom,SortMethod:=xlPinYin,DataOption1:= _
xlSortNormal,DataOption2:=lxSortNormal
Selection.Sort Key1:=Range("H9"),Order1:=xlAscending,Key2:=Range("B9") _
,Order2:=xlDescending,Key3:=Range("M9"),Order3:=xlAscending,Header _
:=xlGuess,OrderCustom:=1,MatchCase:=False,Orientation:=xlTopToBottom _
,SortMethod:=xlPinYin,DataOption1:=xlSortNormal,DataOption2:= _
xlSortNormal,DataOption3:=lxSortNormal
End Sub
No.2ベストアンサー
- 回答日時:
割と便利に安易な手の一つとして。
並べ替えの対象範囲にしたいセル範囲(A9:J153とか)を選んでから,名前ボックス(数式バーの左端,通常A1とか表示が出ている箱)に myRng と入れて範囲に名前を付けます。
挿入メニューの名前の定義で名前を付けたり,確認してもいいです。
続いて並べ替えの頭にしているB9,H9,I9,J9の各セルについても,それぞれmyB9,myH9,myI9,myJ9と名前を定義しておきます。
で,今のマクロで
selection.sort → range("myRng").sort
key1:=range("I9") → key1:=range("myI9")
以下同文
のように修正してみます。
行の挿入等を行ったあと挿入メニューの名前の定義で,定義した各名前のセル範囲が行の挿入に追従して正しい位置を指し示していることを確認してみてください。
回答ありがとうございます。
マクロの扱いに慣れるにはまだまだ時間がかかりそうですが,頂いた回答でうまく動作しました。
今後も応用する場面があるように思えるので非常に助かりました。
ありがとうございます。
No.1
- 回答日時:
>消してもいい不要な部分も分からないので教えて頂ければありがたいです。
詳細が分らないので、難しいね
'これでいいと思うよ
Sub 日付順()
ActiveSheet.UsedRange.Sort Key1:=Range("I9"), Order1:=xlAscending, Key2:=Range("J9") _
, Order2:=xlDescending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin, DataOption1:= _
xlSortNormal, DataOption2:=lxSortNormal
Selection.Sort Key1:=Range("H9"), Order1:=xlAscending, Key2:=Range("B9") _
, Order2:=xlDescending, Key3:=Range("M9"), Order3:=xlAscending, Header _
:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom _
, SortMethod:=xlPinYin, DataOption1:=xlSortNormal, DataOption2:= _
xlSortNormal, DataOption3:=lxSortNormal
End Sub
この回答への補足
早速の回答ありがとうございます。
詳細についてですが,8行までと154行からは並べ替えたい表とは別の情報が入っています。
9行~153行は1つの表で,行の挿入や削除で増やしたり減らしたりしたいのです。
質問させて頂いてるPCにエクセルが入っていないため頂いた回答は明日会社に行って試したいと思うのですが,
Rows("9:153").Select
Selection.Sort
↓
ActiveSheet.UsedRange.Sort
の変更でよろしいでしょうか?
詳細を記入していなかったためお手数おかけしますが,回答頂ければありがたいですm(__)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) マクロで最終行を取得してコピーしたい 3 2022/04/06 19:07
- Visual Basic(VBA) Excel_マクロ_現在開いているシートにマクロを実行したいです 1 2023/02/14 23:54
- Visual Basic(VBA) Excel VBAで並べ替えをしたい 3 2023/02/25 09:31
- Visual Basic(VBA) エクセル VBA 処理スピードを上げたいのですが。 6 2023/03/31 20:52
- Visual Basic(VBA) シフト表のコマで「ブロック」されている前の時間の「出」を同一列の「休」と入れ替えたいがふぇきません。 2 2023/08/02 18:49
- Visual Basic(VBA) エクセルのマクロについて教えてください。 5 2023/06/02 08:44
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/08 09:08
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/06/01 14:45
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/04 17:58
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel2007で、太字にした行のみ...
-
条件に応じて特定の行を非表示...
-
「マクロ」の足し算の式を教え...
-
Excel にて非表示行を探すワー...
-
値貼り付けをしても書式も貼り...
-
Excelでセル内の数式は残し値だ...
-
Excel(VBA)データ入力に応じて...
-
VBA コピーを有効行までループ...
-
Excelで連続印刷をするマクロ
-
〈VBA〉 CSVデータの指定列を読...
-
エクセルで全ての数字間にカン...
-
Excelで更新日を自動的に入れたい
-
エクセル2003でマクロをおこな...
-
マクロの作成
-
エクセル VBA 小数点を含む数字...
-
エクセル オートフィルタの抽...
-
エクセルVBAマクロで条件付き合...
-
yyyy/mm/ddの日付に一括変換す...
-
エクセルの複数シートの保護を...
-
別シート参照のセルをシート毎...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
条件に応じて特定の行を非表示...
-
Excel2007で、太字にした行のみ...
-
Excelで連続印刷をするマクロ
-
Excelでセル内の数式は残し値だ...
-
「マクロ」の足し算の式を教え...
-
エクセル VBA 小数点を含む数字...
-
エクセルで全ての数字間にカン...
-
Excel(VBA)データ入力に応じて...
-
wordのvbaでハイパーリンク設定...
-
Excel にて非表示行を探すワー...
-
Excel2007 セルを右方向に削除...
-
エクセル2003でマクロをおこな...
-
エクセルで、行ごとの並び替え...
-
値貼り付けをしても書式も貼り...
-
VBA コピーを有効行までループ...
-
yyyy/mm/ddの日付に一括変換す...
-
整数行を残し小数点の行を削除...
-
エクセルで行と列を入れ替えキ...
-
エクセルで特定の数字となる組...
-
エクセルで連番をマクロで
おすすめ情報