同項目のデータを1行に並べるには?

Question 13.2 Previous Next
エクセルで作った表3個くらいですが(3個ファイルあり)、これをマクロで、一つのまとめた表にしたいのですが、簡単なのでしょうか?
      表1                    表2
          
こんなような2つの表を、マクロで下の表のようにしたいのです。 こんな感じに・・
    
出来るものでしょうか、やっぱり初心者には難しいのでしょうか。
HPを参考にさせてもらっていると、わかりやすく書いてありましたので、出来そうなの ですが、 分厚い本などより参考になるので、参考にさせてもらっているのですが、うまくい きません。なんかアドバイス有ったら教えて下さい。
Answer   Copyright (C) 1998.11.22 永井善王
エクセルらしい良い方法が、きっと、あるのではと思いますが、私はこの頃、ものすごく多忙で少々疲労気味です。アイデアが浮かばないので、オーソドックスな手法のマクロになりますが、参考にしてください。
左図を見ながら、説明を読んでください。
1) 表1と表2の内容を、別の表にまとめて連結する
2) 連結したデータを、同じ項目のデータを固めるために項目(A列)順にソートする
3) ソートできたら 1行目から順に項目の変わり目を判断して並べながら、別のシートに記入する
マクロの詳細は、サンプルマクロ 「
同項目を1行に並べる」を見てください。
サンプルマクロは、表1と表2が同じブックにある前提で書いています。 違うブックにある場合は、マクロの前半の下記の部分を改良してください。
    Sheets("表1").Select                        '元データのシートを選ぶ(1枚目)
        下端 = Range("A1").End(xlDown).Row      '下端検出
        Range(Cells(1, 1), Cells(下端, 2)).Copy '検出した範囲を選択してコピー
    Sheets("連結").Select
        Range("A1").PasteSpecial Paste:=xlAll   'すべて貼り付け
        貼付行 = 下端 + 1                         '次に貼り付けるための行

    Sheets("表2").Select                        '元データのシートを選ぶ(2枚目)
        下端 = Range("A1").End(xlDown).Row
        Range(Cells(1, 1), Cells(下端, 2)).Copy
    Sheets("連結").Select
        Range(Cells(貼付行, 1), Cells(貼付行, 1)).PasteSpecial Paste:=xlAll
        連結下端 = 貼付行 + 下端                '張付け終った最下行
その方法は、1) ブックを切り替えるマクロを追加するか、または、
      2) 違うブックから、このブックへ表をコピーするマクロを追加することになると思います。

 

Excel VBA Macro