Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


3343 / 13646 ツリー ←次へ | 前へ→

【62822】同じデータの結合の方法について Pちゃん 09/9/7(月) 16:44 質問[未読]
【62826】Re:同じデータの結合の方法について りん 09/9/7(月) 21:45 回答[未読]
【62828】Re:同じデータの結合の方法について Pちゃん 09/9/8(火) 9:36 お礼[未読]

【62822】同じデータの結合の方法について
質問  Pちゃん  - 09/9/7(月) 16:44 -

引用なし
パスワード
   マクロを作成しています。
A対する情報が3列(固定で)あります。
  ------------------------------------
1  A列   B列  C列・・・・・・・・
  ------------------------------------
2  新宿区 山田   男・・・・・・・・
  ------------------------------------
3      太田   女・・・・・・・・
  ------------------------------------
4      太田   女・・・・・・・・
  ------------------------------------
5  新宿区 伊藤   男・・・・・・・・
  ------------------------------------
6      佐々木  女・・・・・・・・
  ------------------------------------
7      酒井   女・・・・・・・・
  ------------------------------------
8  世田谷区 伊藤  男・・・・・・・・
  ------------------------------------
9      佐々木  女・・・・・・・・
  ------------------------------------
10      酒井   女・・・・・・・・
  ------------------------------------
上記のエクセルを下記のようにしたいと考えてます。
  ------------------------------------
1  A列   B列  C列・・・・・・・・
  ------------------------------------
2  新宿区 山田   男・・・・・・・・
      ----------------------------
3      太田   女・・・・・・・・
      ----------------------------
4      太田   女・・・・・・・・
      ----------------------------
5      伊藤   男・・・・・・・・
      ----------------------------
6      佐々木  女・・・・・・・・
      ----------------------------
7      酒井   女・・・・・・・・
  ------------------------------------
8  世田谷区 伊藤  男・・・・・・・・
  ------------------------------------
9      佐々木  女・・・・・・・・
  ------------------------------------
10      酒井   女・・・・・・・・
  ------------------------------------
区のデータは区ごとに3行ずつ存在します。
※新宿区-世田谷区-新宿区という順番はなく新宿-新宿-世田谷区とう感じで
同じ区の名前ごとになっています。
ただ新宿-新宿-新宿-新宿-世田谷区というパターンもあります。
区に対するデータの行はそのままで同じ区の行のみ結合したいのですが
3行ごとに比較して結合する方法がわかりません。
有識者の方にぜひご教授いただければと思います。
お手数ですがどうか宜しくお願いします。

【62826】Re:同じデータの結合の方法について
回答  りん E-MAIL  - 09/9/7(月) 21:45 -

引用なし
パスワード
   Pちゃん さん、こんばんわ。

>ただ新宿-新宿-新宿-新宿-世田谷区というパターンもあります。
>区に対するデータの行はそのままで同じ区の行のみ結合したいのですが
>3行ごとに比較して結合する方法がわかりません。

3行ずつとばして比較して、ベタにくっつけていきます。

Sub test2()
  Dim r1 As Long, r2 As Long, r3 As Long
  '一番下の区の入ったセルを判定
  Rmax = Range("A65536").End(xlUp).Row
  r1 = Rmax  '開始データ(区の入っている一番下の行)
  r2 = r1 - 3 '比較対象データ
  r3 = r1 + 2 '結合する最下行
  '警告無視
  Application.DisplayAlerts = False
  '作業中のシートが対象
  With Application.ActiveSheet
   Do
     If r1 < 3 Then
      .Range(.Cells(r1, 1), .Cells(r3, 1)).Merge
      Exit Do '結合して終了(今回のサンプル例のように2行目が1レコードめの場合)
     ElseIf .Cells(r1, 1).Value <> .Cells(r2, 1).Value Then
      .Range(.Cells(r1, 1), .Cells(r3, 1)).Merge
      r3 = r1 - 1 '結合する下行番号を入替
     End If
     r1 = r1 - 3: r2 = r1 - 3
   Loop
  End With
  '警告再開
  Application.DisplayAlerts = True
End Sub

こんな感じです。

【62828】Re:同じデータの結合の方法について
お礼  Pちゃん  - 09/9/8(火) 9:36 -

引用なし
パスワード
   ★りん さん

ご回答ありがとうございました!!
JAVAからPOIを使用しエクセルに出力していましたが
結合をJAVAで操作しようかマクロで操作しようか
悩んでおりました・・

先ほどブラウザから出力し、動確いたしましたが
りんさんのコードで'完璧'に希望通りの結果が得られました(泣

また何かありましたらぜひ宜しくお願いいたします!

本当にありがとうございました、感謝しています。

3343 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free