• 締切済み

【Excel 2003】複数のブックのシートを一つのブックにコピーにしたい

お世話になっております。 【Excel 2003】を使っております。 複数のブックには、複数のシートがありまして、 複数のシートを一つのブックにコピーしたいのですが、 手作業ですと、大変時間がかかります。 現在は、一つ一つブックをあけて、シートのコピーで 一つの新しいブックにいれてます。 なにか、これを簡単にできる方法は、ありませんでしょうか? フリーのソフトでも、マクロでも、教えていただけたら 助かります。よろしくお願いします。

みんなの回答

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

コピー先のブックに下記のVBAを仕組み、コピーされるブックと同じフォルダにいれて、いったん保存してから実行してみてください。 コピーされる方のブックの名前、件数、シート数は別に問いません。 フォルダー内のコピー先ブック以外の全ブックの、全シートをまコピー先ブックに複写するマクロです。 1.コピー用のブックで、Altキー+F11キーでVisualBasicEditorを呼び出します。 2.メニューから挿入、標準モジュールで出てきたコードウィンド(右側の白い広い部分)に以下のコード(Sub~End Sub)をコピペします。 Sub consolid() Application.ScreenUpdating = False '画面更新を一時停止 Set mb = ThisWorkbook 'このコピー先ブックをmbとする。 myfdr = ThisWorkbook.Path fname = Dir(myfdr & "\*.xls") 'フォルダ内のExcelブックを検索 Do Until fname = Empty '全て検索 If fname <> mb.Name Then 'ブック名がこのブックの名前でなければ Set wb = Workbooks.Open(myfdr & "\" & fname) 'そのブックを開きwbとする。 wb.Worksheets.Copy After:=mb.Sheets(mb.Sheets.Count) 'コピーしてコピー先ブックの末尾に置く wb.Close '開いたブックを閉じる n = n + 1 'ブック数をカウント End If fname = Dir 'フォルダ内の次のExcelブックを検索 Loop '繰り返す Application.ScreenUpdating = True '画面更新一時停止を解除 MsgBox n & "件のブックをコピーしましました。" End Sub 3.Alt+F11キーでワークシートへもどります. 4.メニューから、ツール、マクロ、マクロで出てきたマクロ名(consolid)を選択して実行 これでオリジナルはそのままにして、コピー先のブックに他の全シートが複製されるはずです。

ID777
質問者

お礼

merlionXX様、ありがとうございます。 的確で、早い回答ありがとうございます。 VBAの勉強をして、もっと使いこなせるようにがんばります。 また、わからないことが、ありましたら、よろしく お願いします。