• 締切済み

Excelのシートを1枚にまとめる方法について

K Kazz(@JazzCorp)の回答

回答No.2

'ブックの全シートを単純に1枚にまとめる Option Explicit Const xName_To = "Combiner" Const xHeads = 1 Sub CombineSheets() Dim xLast_From As Long Dim xLast_To As Long Dim kk As Long Application.ScreenUpdating = False Application.DisplayAlerts = False For kk = 1 To Worksheets.Count If (Worksheets(kk).Name = xName_To) Then Worksheets(kk).Delete Exit For End If Next '先頭に集合用のワークシートを追加 Worksheets.Add Before:=Worksheets(1) Worksheets(1).Name = xName_To For kk = 2 To Worksheets.Count '元データを選択してコピー xLast_From = Worksheets(kk).Cells(Rows.Count, "A").End(xlUp).Row Application.CutCopyMode = False With Worksheets(xName_To) '集合先のシートの行数を調べる xLast_To = .Cells(Rows.Count, "A").End(xlUp).Row Application.CutCopyMode = False If (xLast_To = 1) Then 'ヘッダをコピー Worksheets(kk).Rows("1:" & xHeads).Copy .Range("A1").PasteSpecial xLast_To = .Cells(Rows.Count, "A").End(xlUp).Row Application.CutCopyMode = False End If 'ヘッダを除いてコピー Worksheets(kk).Rows(xHeads + 1 & ":" & xLast_From).Copy .Range("A" & xLast_To + 1).PasteSpecial xlPasteValues End With Next kk Worksheets(1).Select Application.CutCopyMode = False Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub

KANTA_MAN
質問者

お礼

JazzCorpさん、ありがとうございます。 試してみたいのですが、ちょっと自分には難しそうなので 時間があるときに頑張ってみたいです。

関連するQ&A

  • エクセルのシート

    エクセルのシート エクセルで作った表をコピーして、同じファイル内で、 シートを新しくしてペーストしたいのですが、 セルの幅と高さの情報は反映されません。 そっくり同じものをコピー&ペーストするには、 どういう手順を踏めばよろしいのでしょうか? こちらの環境は、Mac10.5.8、EXCEL Mac2008です。 よろしくお願いいたします。

    • ベストアンサー
    • Mac
  • エクセルの1シートの内容を複数のシートに分割したい。

    前任者から引き継いだエクセルのファイルを見やすくしたいと思っています。 1ページにつき1つの表が作られているのですが、一枚のシートのページ数が膨大で、とても見にくいのです。ページ毎に(一つの表毎に)違うシートにしたいのですが、地道にコピー&ペーストをしなければならないでしょうか。 一発でバチッとページ毎にシートにできる方法はありますか? windowsXP, Excel 2002を使用しています。

  • Excelでセル内の文字で他シートを検索し行ごと呼んできたい(長文です)

    いつもありがとうございます。 また助けて欲しいんです。 Excelで1つの項目に対して集計した数字が20列くらいついています。 この項目を目的ごとに並べ替えることになりました。 でも五十音順などでは上手く並べ替えることができないんです。 行は200行くらいあるので自分で調べてコピー&ペーストは時間が掛かりすぎます(10ファイルくらいその作業をしなくてはいけないので) 目的ごとに項目が並んでいる表はあるので、その表を使って別のシートから項目が合うセルの右隣から始まる集計した数字の入っている20列を呼んでくる方法はありますか? つたない文章で申し訳ありません。 よろしくお願いします。

  • 複数のExcelファイルをまとめる方法

    複数のExcelファイルを1つのExcelファイルにまとめる方法(ソフト)を教えてください。 まとめる際に1ファイルが1シートになるようにまとめたいのです。 つまり5つのファイルがある場合、5つのシートにしたいのです。 コピー&ペーストで頑張ればできますが、自動でできるフリーソフトかマクロがないか探しています。

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

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

  • excel vba 作成について教えて下さい。

    excel VBAを使ってあるブックのセル範囲を別のブック(日報.XLS)のシートへコピー貼り付けをしたいのですが、コピーする側のブックがランダムに取り込まれ(例 8時間ピッチにて自動的にブックが作成される)そのブックを日にちごとに集計し、一か月ごとにまとめるということをやらなければなりません。 例)8時間ごとにフォルダが作成されます。   000001.XLS 000002.XLS   00000F.XLS ・・・・・・・・16進数にて   上記ブックのSheet1のA2:A11までの数値を別のブック(日報月報集計)のに貼り付ける。 別のブック(日報月報集計)は項目ごとに10個のシートがあり 8時間ごとのファイルのセルA2は別ブックのSheet1の日付けに対応するセルへ貼り付け B2は       Sheet2 上記操作を8時間ごと(可変可能)に自動的にコピー貼り付けをやりたいのですが ブック間のコピー貼り付け等わからないことが(初心者です。)多々あり、いろいろ調べてはいるのですが、STOPした状態です。 出来れば、初心者にも理解しやすい解説等あれば宜しくお願いします。

  • EXCEL 複数シートを1つのシートに集約する方法

    1つのブックに複数(30程度)の同一フォームのシートがあり、それらを1つのシートにまとめる方法があれば教えて下さい。 データを統合(集計)するわけではなく、単純にシート1の最後のデータの次の行にシート2のデータを追加、同様にシート3~最後のシートのデータを次々に追加したいのです。 手作業でデータをコピー&ペーストでももちろん可能ですが、結構時間がかかりますので簡単なマクロでできれば助かります。 よろしくお願いします。

  • エクセルの集計について

    エクセルの集計について エクセルでのデータ集計でこのパターンが多いのですが、手作業でやると非常に稼動がかかりなんとか関数を使ってできないかと思いますが、考えても思い浮かびませんでした。 どなたかお知恵をお貸しください。 添付ファイルの「Sheet1」のA列の順番を入れ替えて「Sheet2」のようにしたいです。 (実際はもっと項目が多く、A列の項目も「Sheet1」と「Sheet2」は完全一致ではありません) できるかわかりませんが、「Sheet1」のA列から「Sheet2」のA列の項目を検索し、その行の数値を 「Sheet2」に入力するという関数があれば教えていただきたいです。 「Sheet1」は毎月データが変わるので、新しいデータをコピー&ペーストすれば「Sheet2」が完成するように関数を設定しておきたいです。 添付ファイルが1つしか設定できないようなので、「Sheet1」「Sheet2」を仮想的に1つのシートにさせていただきました。 うまくやりたいことが説明できているか不安ですが、よろしくお願いします。

  • エクセルで一つのブックにある複数のシートを一つのシートにまとめる。

    エクセルで一つのブックにある複数のシートを一つのシートにまとめる。 各シートには同じ形式の表(大きさも同じ)が1枚ずつあります。 それを一つのシートに、縦に並べて表示したい。 シートが100枚ぐらいありますので、ひとつひとつコピーするのは 大変です。 よろしくお願いします。

  • エクセルの集計について

    エクセルの集計について エクセルでのデータ集計でこのパターンが多いのですが、手作業でやると非常に稼動がかかりなんとか関数を使ってできないかと思いますが、考えても思い浮かびませんでした。 どなたかお知恵をお貸しください。 添付ファイルの「Sheet1」のA列の順番を入れ替えて「Sheet2」のようにしたいです。 (実際はもっと項目が多く、A列の項目も「Sheet1」と「Sheet2」は完全一致ではありません) できるかわかりませんが、「Sheet1」のA列から「Sheet2」のA列の項目を検索し、その行の数値を 「Sheet2」に入力するという関数があれば教えていただきたいです。 「Sheet1」は毎月データが変わるので、新しいデータをコピー&ペーストすれば「Sheet2」が完成するように関数を設定しておきたいです。 うまくやりたいことが説明できているか不安ですが、よろしくお願いします。