A1に会社名のカタカナ。B1に会社名があります。
10行程度すでにデータが入っている状態で
途中行に新たに1行を挿入したのち
増えた行数分(全部で11行)も含めて並べ替えをするという作業を行います。
その場合、マクロで以上の手順を踏むと
1度目はうまくいくのですが
2度目になると相対参照でマクロを設定したにも関わらず
11行目までしかソートされません。
12行目がソートの範囲に入らないのです。
行が増えた分も含めて、すべての行数をソートするには
どのようなVBAを組めばいいのでしょうか?
ご教授ください。
No.3ベストアンサー
- 回答日時:
#02です。
代替案は後で示しますが、補足文の内容だけでは「論理的に不可能」です。>途中の3行目に1行挿入後
なぜならこの状態で1行目~11行目が「ひとまとまり」になる条件が書かれていないからです。その条件が明示されない限りVBAでソートする範囲を決定できません。
ですから再度A1:B10、A11:B20が「ひとまとまり」であることを判断する条件を補足してください。(人が目で見てできるなら何らかの条件があるはずです)
代替案として最初にA1:B10、A11:B20にそれぞれ名前定義しておく方法があります。それであれば範囲の途中行に行挿入されてもソートが可能です。定義された名前が「grpA」だとするとソートするVBAは以下のようになります
Range("grpA").Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
:=xlPinYin, DataOption1:=xlSortNormal
でもこの方法は完全ではありません。それは11行目に挿入が行われた場合、その行はどちらの名前定義にも含まれないからです。従ってソートされません。
No.2
- 回答日時:
ソート時の範囲の記述を3つ書きます。
・カレントリージョン(「Shift+Ctrl+*」で選択される範囲)
Range("A1").CurrentRegion.Sort Key1:=Range("A1"), …以下省略
・A:B列
Columns("A:B").Sort Key1:=Range("A1"), …以下省略
・A1からB列の最終行までを範囲とする
Range(Range("A1"), Range("B65536").End(xlUp)).Sort Key1:=Range("A1"), …以下省略
この回答への補足
すみません。VBAを完全に理解しているわけでないので
どこでご指摘の構文を挟めばいいか解らないんです。
NO,1さんの補足にも書いたのですが
このようなソートを行うためにはどうしたらいいか
再度ご教授いただけないでしょうか?
よろしくお願いいたします。ペコリ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 結合セルのソートについて 5 2022/04/22 11:57
- Visual Basic(VBA) 顧客ごとに違う点検案内を作成するマクロ 4 2022/09/16 05:34
- Visual Basic(VBA) Excel VBAで並べ替えをしたい 3 2023/02/25 09:31
- Excel(エクセル) 並べ替え、ソートの構文がわからない。 お世話になります。VBA超初心者です。 エクセルでワークシート 2 2023/06/28 21:00
- Excel(エクセル) 余計なお世話的な「入力規則」?対策は? 2 2023/01/14 12:39
- Visual Basic(VBA) マクロを教えてください。 7 2023/06/01 19:47
- Excel(エクセル) EXCEL マクロで 同じフォルダ内の複数ファイルの複数行全体を選択して1つのファイルに集約 4 2022/09/27 18:41
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 6 2023/03/03 18:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル、並び替え正しくソー...
-
レコードの登録順がおかしい
-
SQLで曜日のソートを月火水木金...
-
1の行を固定した上でVBAを用い...
-
ファイルの漢数字の順番につい...
-
並べ替えについて
-
MySQLのORDER BYについて
-
Selectした時のレコードの取得順
-
テーブルレーコードをソートし...
-
Excelのオートフィルタでソート...
-
WORDの「並べ替え」について
-
エクセルでダブルクリックして...
-
数字と漢字が混じった日付デー...
-
SQL ORDER BY の結果について
-
リストボックス内を昇順並べる方法
-
becky!での表示について質問
-
ファイルメーカーでソート後の...
-
Excelの並び替え(文字数と画数...
-
MySQLで保存できる限界行数
-
アドレス帳の並べ替えについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのソートについて
-
テーブルレーコードをソートし...
-
エクセル、並び替え正しくソー...
-
DOSでフォルダとファイルをテキ...
-
レコードの登録順がおかしい
-
ファイルの漢数字の順番につい...
-
1の行を固定した上でVBAを用い...
-
並べ替えについて
-
上から何番目か。
-
リストボックス内を昇順並べる方法
-
文字型の順番がうまく並ばない。
-
Selectした時のレコードの取得順
-
accessでDISTINCT 句と矛盾
-
アクセスに関して。クエリの並...
-
月末日のみソートしたい
-
ハイフンの入ったデータの並べ替え
-
コンボボックスのソートについて
-
都道府県順、北からソートした...
-
タイトル行を固定してソートしたい
-
SQLのORDERBY句について質問です。
おすすめ情報