• 締切済み

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

Excelについて、日報のようなもので1つのファイル内に複数のシート(約30シート/1ファイル)が作成してあります。 これを1ページにまとめるような方法があればご教授ください。 コピー・ペーストで地道にやり始めましたが、操作ミスがあるような気がして、今一つ不安になってしまいます。 項目ごとに集計するのではなく、単純に縦に並べていきたいのです。 よろしくお願いします。

みんなの回答

  • chayamati
  • ベストアンサー率41% (260/624)
回答No.4

コピー・ペーストで地道にやり始めましたが、操作ミスがあるような気がして ------------------------------------------------------------ 多分末尾へ貼り付けをされているのでは →貼り付け位置のためのスクロールが大変ですね 下にするシートから順に コピーしたセル挿入で、貼り付け位置がセルA1と同じになります。 またこうすると張り付けるsheet選択と張り付ける範囲選択以外は同じ流れです この同じ流れのマクロが次です(Sheet0にコピペする) Sub コピーしたセル挿入() Selection.Copy Sheets("Sheet0").Select Rows("1:1").Select Selection.Insert Shift:=xlDown (右方向は =xlRight) End Sub ここまで準備して 1.すべてのSheetの有効範囲を選択します 2.コピペするシートを逆順に「Sheetクリック→マクロ実行」

  • TammyG3
  • ベストアンサー率30% (34/111)
回答No.3

この質問のように、単純なことで、意外と難しいのが面白い!! すぐ、VBAでと考えますが、やさしい方法はないか考えました。 1ファイルなら、コピベで地道にが、1番。たくさんのファイルなら ↓ No.1さんが勧めるように、そのママ利用するなら、シート見出し左の矢印部分を右クリック CONCATENATE関数で結合して、区切りウィザードで分離 も考えましたが、試さず 単純に、=で別Sheetのデーターを持ってくる、楽な方法を試してみました。      1Sheetに1列の日報として 1 B1に、Sheet2!Aと入力 2 シート数分、右へオートフィル 3 そのママ、選択状態で AをA1に、すべて置換 (検索と置換DLBは閉じない) 4 選択状態のママ、ダブル(W)クリックなどで 下へオートフィル 5 そのママ、選択状態で Sを=Sに、すべて置換 複数列の場合は、もう少し考えないといけませんね。                       鎌倉 曽野蜩

KANTA_MAN
質問者

お礼

TammyG3さん、ありがとうございます。 本当に単純なことだと思うのですが、こんな操作はあまり 需要がないのでしょうか? もっと簡単にできると思ったのですが。

回答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さん、ありがとうございます。 試してみたいのですが、ちょっと自分には難しそうなので 時間があるときに頑張ってみたいです。

  • k-josui
  • ベストアンサー率24% (3220/13026)
回答No.1

直接の回答にはなりません。 なぜ1シートに纏めたいのでしょうか? 呼び出しがやりにくい?     実は知人が地区の管理ファイルを貰いましたが、これもシートが多く呼び出すにも面倒でした。 そこで一番左に新しい目次シートを挿入して、各シートへの呼び出しハイパーリンクを作成しました。 目次シートを表示して、このリンクをクリックすれば簡単に目的シートを呼び出すことができ、かなり楽になったと喜んでいました。     求める回答と違っていたらゴメンなさいね。

関連するQ&A