みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

EXCELのVBAを使用してフォルダー内の複数のデーターの集計処理を

EXCELのVBAを使用してフォルダー内の複数のデーターの集計処理を
行いたいのですが1個目のデーター処理を行った後集計処理を行った後
集計シートを2個目のデーターに移動させたいのですが方法がわかりません。
下記のように集計表(原紙)を複数のデーターにコーピーはできるのですが

Private Sub CommandButton1_Click() '集計表作成
Dim MyPath, MyBook, MyName
MyPath = ThisWorkbook.Path & "¥"
MyBook = ThisWorkbook.Name
MyName = Dir(MyPath & "*.xls")
Do While MyName <> ""
If MyName <> MyBook Then
Workbooks.Open Filename:=MyPath & MyName
'一番左に集計表を貼り付ける
Workbooks(MyBook).Worksheets(1).Copy Before:=Workbooks(MyName).Sheets(1)
'"ここで集計処理後 次のBookへ移動"
Workbooks(MyName).Save
Workbooks(MyName).Close
End If
MyName = Dir
Loop

End Sub
Copy部分をMoveにするとエラーメッセージがでてしまい
集計したシートを次々と移動させる方法がわかりません。
どのような方法で実行すれば宜しいでしょうか?

投稿日時 - 2010-01-23 10:43:43

QNo.5615737

困ってます

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

こんにちは。

>1個目のデーター処理を行った後集計処理を行った後


意味が良く分からないです。
データ処理を行うというという、「処理」は何ですか?
マクロですか?

>集計シートを2個目のデーターに移動させたいのですが方法がわかりません。
>集計したシートを次々と移動させる方法がわかりません。

マクロを乗せているブック(ThisWorkbook)のシート・データを、それぞれのブックにコピーするということは分かるのですが、その後、移動という言葉の意味が分かりません。マクロの「移動(Move)」という意味はは、ThisWorkbook のシートを別のブックに移動してしまうことですから、元がなくなってしまいます。だから、一回きりしかありません。それに、最後はエラーが発生します。すべてのシートを移動することは不可能です。

こういうことですか?

Workbooks(MyBook).Worksheets(2).Copy Before:=Workbooks(MyName).Sheets(2)
と、コピー元のシートの2番目のデータを、貼付け先のブックのシートの2番目にコピーする。

または、
'ただし、シートの順番が逆さになります。また、貼付け先のシート数が足らないと、エラーが発生します。

For i = 1 To ThisWorkbooks.Worksheets.Count
  ThisWorkbooks.Worksheets(i).Copy Before:=Workbooks(MyName).Sheets(i)
Next

投稿日時 - 2010-01-23 14:57:34

ANo.1

このQ&Aは役に立ちましたか?

4人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問