プロが教える店舗&オフィスのセキュリティ対策術

エクセルのマクロで
例えば、画像のような表があるとして(データは下に更新されていきます)
古い日付順に並び変えることは可能でしょうか?
表自体はもっと大きく横はHまであります。
No,に関しては特に意味はなく現在の並び順に番号がふってあるだけです。

可能であれば教えていただきたいです。よろしくお願いします。

「マクロ 2行ごとの並び替えについて」の質問画像

A 回答 (4件)

こんにちは


#1様と同様な回答を書いてしまいましたので消して
異なる点を書き直します

VBAを作る前にシートの作業で出来ます
使われているH列の右I列に対応の日付を入れますこの時1つ上のセルにも同じ値を入れます
① I8セルに2022/12/5 I7セルにも同じ2022/12/5 を入力
最後まで対象のセルの値を同様に入れます
簡単な方法は I7セルに=B8 I8セルに=B8 入力した2セルを選択してフィルハンドルで
② ①が出来たらA7~I列最後行を選択して
③ 並び替え 先頭行を見出しを・・チェックを外し 最優先列をI列 他の設定は適時 でOK
④ I列をクリアー
作業列は現データの位置関係があるので1列で上手くいくと思われます

①転記部分をVBAにするところが判り難いと思います
VBAにすると
Dim lastRow As Long
lastRow = Cells(Rows.Count, "B").End(xlUp).Row
Dim i As Long
For i = 8 To lastRow Step 2
Cells(i, "I").Offset(-1).Resize(2).Value = Cells(i, "B").Value
Next
こんな感じです(ご質問の表組で書いています)
    • good
    • 0

C7セルとC8セルに、下記の式を入力します。



  =B8&ROW()

C7:C8セルを範囲選択して、下にオートフィルします。
C列で並べ替えをします。
最後にC列を削除すれば、出来上がり。
    • good
    • 0

補足要求です。


1.シート名は何でしょうか。
2.作業に1シート使いますがよろしいでしょうか。
3.7行目以降は、結合セルはないと考えて良いでしょうか。
    • good
    • 0

こんにちは



>可能であれば教えていただきたいです。よろしくお願いします。
マクロで可能です。

エクセルの「並び替え」機能がそのままでは利用できないので、正攻法で行うならマクロでソートする必要があります。
検索すればソートのロジックはいろいろ見つかると思いますが、ご質問なさっているということから想像すると、それではハードルが高いのだろうと推測しますので、マクロの記録でも8割方できそうな方法を以下に。
(最終行の取得や、セル範囲の指定など記録だけではそのままのものは無理ですが、セル値の転記やループをご存じなら、記録を修正することで作成できると思います)

対象の表の右側に、作業列を2列想定します。
1)作業列1には各日付を2行ずつ同じ値で転記します
2)作業列2には1~の連続数を入れておきます
3)エクセルの並べ替え機能で、第一キーを作業列1に、
  第二キーを作業列2に指定して昇順で並べ替え
4)作業列1、作業列2の内容を消去

上記の処理を順に行えば、元のデータを並べ替えた結果が得られるはずです。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!