すぐマク YNxv952 Home | Search | Contents | Gallery | Introduction | Service | Support | What's New!
同項目のデータを1行に並べるには? Click Here! Click Here!
Question 13.2 値の操作 Previous Next
エクセルで作った表3個くらいですが(3個ファイルあり)、これをマクロで、一つのまとめた表にしたいのですが、簡単なのでしょうか?
         表1                       表2
          

こんなような2つの表を、マクロで下の表のようにしたいのです。 こんな感じに・・
    
出来るものでしょうか、やっぱり初心者には難しいのでしょうか。

HPを参考にさせてもらっていると、わかりやすく書いてありましたので、出来そうなの ですが、 分厚い本などより参考になるので、参考にさせてもらっているのですが、うまくい きません。なんかアドバイス有ったら教えて下さい。
Answer   Copyright (C) 1998.11.22 Yoshioh Nagai
エクセルらしい良い方法が、きっと、あるのではと思いますが、私はこの頃、ものすごく多忙で少々疲労気味です。
アイデアが浮かばないので、オーソドックスな手法のマクロになりますが、参考にしてください。

左図を見ながら、説明を読んでください。

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) 違うブックから、このブックへ表をコピーするマクロを追加することになると思います。
http://www.geocities.jp/happy_ngi/ Home | Contents | Gallery | Introduction | Service | Support | What's New!