• ベストアンサー

Excelのシートを集約したいのですが。。。

EXCELにて、複数のシートを1シートに集約したいのですが、 どうすればいいでしょうか? Sheet1からSheet10ぐらいの量だったので、範囲を指示してコピー&ペーストしていたのですが。。。 Sheet1からSheet50の量になると大変で困ってます。 1シートには印刷で1ページ分のデータが入っています。 Sheet1の内容の下にSheet2の内容を、その下にSheet3の内容という様にコピーしたいです。 何か、簡単なマクロ等有りましたら、教えてください。 VBAは使用した事がないのでよくわかりません。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.4

空きシートがあるとエラーになりますので、こちらを使ってください。 空きシートを無視して次に行きます。 Sub 集約() Dim Rw As Long Dim Sh As Integer Sheets(1).Select For Sh = 2 To Sheets.Count   Rw = Range("A65536").End(xlUp).Row + 1 ' 1行ずつ空けるときは +2   Sheets(Sh).Select   If Range("A65536").End(xlUp).Row > 3 Then     Rows(4).Resize(Range("A65536").End(xlUp).Row - 3).Copy     Sheets(1).Select     Rows(Rw).Select     Selection.Insert Shift:=xlDown   End If Next Application.CutCopyMode = False Sheets(1).Select Range("A1").Select End Sub

2003tenn
質問者

お礼

本当に親切にありがとうございます。 とても、簡単に作業が進むので嬉しいです。 助かりました。 また、なにか有った時にはよろしくお願いします。

その他の回答 (3)

  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.3

> 実はそれぞれのシートにタイトル部分があるのですが、 > それを含まない部分だけコピーする様に出来ますか? もちろん出来ますよ。 タイトル3行無視ですね。 Sub 集約() Dim Rw As Long Dim Sh As Integer Sheets(1).Select For Sh = 2 To Sheets.Count   Rw = Range("A65536").End(xlUp).Row + 1 ' 1行ずつ空けるときは +2   Sheets(Sh).Select   Rows(4).Resize(Range("A65536").End(xlUp).Row - 3).Copy   Sheets(1).Select   Rows(Rw).Select   Selection.Insert Shift:=xlDown Next Application.CutCopyMode = False Range("A1").Select End Sub

  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.2

> EXCELにて、複数のシートを1シートに集約したいのですが、 > どうすればいいでしょうか? 次のマクロを実行すると一番左側のシートに集約になります。 一応、コードの設定方法を書いておきます。 Alt + F11 で、メニューから[挿入]-->[標準モジュール]で表示された コードウィンドウに下記コードをコピーして貼り付けます。 Alt + Q でシートに戻り、メニューから[ツール]-->[マクロ]-->[マクロ]で 「集約」を選択し、[OK]すれば、集約 になります。 Sub 集約() Dim Rw As Long Dim Sh As Integer Sheets(1).Select For Sh = 2 To Sheets.Count   Rw = Range("A65536").End(xlUp).Row + 1 ' 1行ずつ空けるときは + 2   Sheets(Sh).Select   Rows(1).Resize(Range("A65536").End(xlUp).Row).Copy   Sheets(1).Select   Rows(Rw).Select   Selection.Insert Shift:=xlDown Next Application.CutCopyMode = False Range("A1").Select End Sub Range("A1").Select End Sub  

2003tenn
質問者

補足

ありがとうございます。 出来ました。とても嬉しいです。 範囲を指定してコピーしていた事が、あっという間に出来るんですね。 ja7awuさん、実はそれぞれのシートにタイトル部分があるのですが、 それを含まない部分だけコピーする様に出来ますか? タイトルは、それぞれのシートの上から3行を使用しています。 お願いします。

  • cyobin_man
  • ベストアンサー率24% (298/1216)
回答No.1

>複数のシートを1シートに集約 これは 複数のファイルとして保管してあるものを 1つのファイルの中の 複数のシートとして 保存したいということでしょうか? 簡単ですが 労力を使う方法として 新ファイル(50シート重ねるほうを開いておいて) 1枚のみのファイル(移動される側)を開いて タブ(新規だとsheet1となっているところ)をドラックして 新ファイルの上に重ねてやれば 移動してくれます。 こんなんでいいのかな?

2003tenn
質問者

補足

早い回答ありがとうございます。 複数のシートと言うのは、同じBook内にあるシートです。 1Book内のシートの内容をすべてSheet1内に集めたいのです。 1BookにSheet1からSheet10まであるものを、1bookのSheet1内にまとめたいのです。よろしくお願いします。