dポイントプレゼントキャンペーン実施中!

いつもお世話になっております。

エクセルVBAについてお尋ねします。

仕事でエクセルによって、各担当者ごとの業務報告書を作成しております。
仕様を簡単に説明させていただくと。
Sheet2以降に各担当者ごとの業務報告書があり、その集計をSheet1の総括にて行っております。
各担当者のシート様式は、日付ごとにAAA項目、BBB項目、CCC項目等の項目があり、それぞれに対して担当者が記載していくようになっております(添付ファイル参照)
総括のシートも様式は担当者の様式と同じです。

VBAによって、Sheet2以降の項目を総括に転記するところまでは出来たのですが(ちょうど添付ファイルのように日付がランダムに並んでいる状態です)
この後の、並び替え作業の方法が分かりません。セルの結合を行っている箇所もあるのでSortも出来そうに無いですし・・・。
現在は、添付ファイルのようにA列に日付順の順位を表記した状態で止まっております。

並び替えの方法をご指導願います。

また、並び替えが完了した後で、重複する行(添付ファイルの4月2日の箇所)を削除する方法があれば、一緒にご指導をお願いいたします。

初歩的な質問で申し訳ありませんが、よろしくお願いいたします。

「結合したセルの並び替え(エクセルVBA)」の質問画像

A 回答 (1件)

折角マクロを使ってるのですから、丁寧にマクロを動かしていけば簡単にやってくれます。




sub macro1()
 dim lastRow as long
 dim r as long

’並べ替え準備
 lastrow = range("C65536").end(xlup).row
 range("B:B").unmerge
 range("B2:B" & lastrow).specialcells(xlcelltypeblanks).formular1c1 = "=R[-1]C"

’並べ替え
 range("B2:D" & lastrow).sort key1:=range("B2"), order1:=xlascending, header:=xlno

’復元
 application.displayalerts = false
 for r = lastrow - 2 to 2 step -3
  cells(r, "B").resize(3, 1).merge

 ’if application.countif(range("B2:B" & r), cells(r, "B").value ) > 1 then cells(r, "B").resize(3, 1).entirerow.delete shift:=xlshiftup

 next r
 application.displayalerts = true
end sub




>重複する行(添付ファイルの4月2日の箇所)を削除する方法

(上述でとりあえず止めてあるようにして)「(2つ目以降の)4月2日の3行を無造作に削除」してしまっていいのか、C列やD列の記載内容を含めて「重複」を判断する必要があるのか、具体的な状況を添えて「別途のご相談として」投稿し直して下さい。
    • good
    • 2
この回答へのお礼

ありがとうございます。

お礼日時:2014/06/10 16:31

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