• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルマクロで複数シートのコピー)

エクセルマクロで複数シートのコピー

このQ&Aのポイント
  • エクセルマクロを使用して複数のシートをコピーする方法について説明します。
  • 複数のシートが含まれるエクセルファイルから、各シートの解答欄をコピーし、集計用の新しいシートに貼り付ける方法について説明します。
  • 初心者向けに、簡単なコード例と手順を提供します。新しいシートの挿入と繰り返し処理を使用して、シートのコピーと貼り付けを行います。

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

  • ベストアンサー
  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

Sub 集計処理() Dim 集計シート As WorkSheet Dim 記録行位置 As Long Dim 回答シート As WorkSheet '既存の集計シートがあれば取得する On Error Resume Next Set 集計シート = ThisWorkbook.WorkSheets("集計") 'もし、エラーでなければ既存シートがある If Err.Number = vbNormal Then     集計シート.Cells.ClearContents '以前の内容をクリア Else     '既存シートが無ければ集計シートを新規に作る     Set 集計シート = ThisWorkbook.WorkSheets.Add     集計シート.Name = "集計" End If On Error GoTo 0 '各シート毎の処理 For Each 回答シート In ThisWorkbook.WorkSheets     '集計シートは対象にしない     If 回答シート.Name <> "集計" Then         '記録位置を更新する         記録行位置 = 記録行位置 + 1         'シート名と回答を記録する         集計シート.Cells(記録行位置, 1) = 回答シート.Name         '行列を入れ替えてコピー         回答シート.Range("C2:C100").Copy         集計シート.Cells(記録行位置, 2).PasteSpecial , , , True         'コピーモード終了         Application.CutCopyMode = False     End If Next End Sub こういう感じです。

nonstar
質問者

お礼

早急なご回答ありがとうございます。この式でマクロを実行すると、私の思っていたのほぼ近い状態のものが出来上がります。ありがとうございます。ただ、こちらの問題で、回答のセルが他のシートからのリンク貼り付けとなっているため、その辺をうまく処理しなければいけないようです。もし、お時間があったら、その方法(コピぺは値のみで、行列入れ替え)もご教授いただければ幸いです。でも、明るい未来が見えてきたような気がします。がんばってみます。ありがとうございました。

その他の回答 (1)

  • LHS07
  • ベストアンサー率22% (510/2221)
回答No.2

回答ファイル名  回答(1).xls  回答(2).xls  回答(3).xls 集計ファイル名  集計.xls 一度に考えてもできないので 二つの段階で考えましょう。 1.各列のものをファイル名 集計.xls にコピーする 2.行列を入れ替える。 操作方法 1.各列のものを集計ファイル名にコピーする  各セルの値は以下のようになります。  1.C列に回答(1).xlsのデーターをコピー   C2に   ='[回答(1).xls]Sheet1'!$C2   をコピー   C3に   ='[回答(1).xls]Sheet1'!$C3   C100までおこなう。  2.d列に回答(2).xlsのデーターをコピー   d2に   ='[回答(2).xls]Sheet1'!$C2   をコピー   d3に   ='[回答(2).xls]Sheet1'!$C3   d100までおこなう。 2.行列を入れ替える。 集計.xlsのSheet1全てを選択してコピー   貼り付け時に形式を選択して貼り付け    行列を入れ替えるに チェック    貼り付け 値(V)   を選択して、OK 以上 以上

nonstar
質問者

お礼

早急なご回答ありがとうございます。これをマクロの式で書くとどんな感じなんでしょうか?ぜひ参考にしたいと思います。ありがとうございます。

関連するQ&A

専門家に質問してみよう