プロが教えるわが家の防犯対策術!

エクセルの複数のファイルを1つのファイルにする。

同じ雛形内でいろいろ入力された複数のファイル(book)を1つのファイル(book)にしたいです。

現在の方法は

1.1月売上というファイルを開く。
2.2月売上というファイルを開く。
3.開いた2月売上のファイルの中の雛形部分を全行コピーします。
4.1月売上のファイルの最終行の下の行に貼り付けします。
5.2月売上というファイルを閉じます。
6.3月売上というファイルを開く
7.開いた3月売上のファイルの中の雛形部分を全行コピーします。
8.NO.4の作業後の最終行の下の行に貼り付けします。
9.3月売上というファイルを閉じます。
10.4月売上というファイルを開く。
11.開いた4月売上のファイルの中の雛形部分を全行コピーします。
12.NO.8の作業後の最終行の下の行に貼り付けします。
13.4月売上というファイルを閉じます。
14.5月売上というファイルを開く
15.開いた5月売上のファイルの中の雛形部分を全行コピーします。
16.NO.12の作業後の最終行の下の行に貼り付けします。
17.5月売上というファイルを閉じます。
18.名前をつけて保存で「1月売上」→「1月-5月売上」で保存

これで「1月-5月売上」のファイルを開けば
5ファイル分のデータがあり、あとはオートフイルタやら並び替えやら
編集で自由自在です。
ですが上記手順は非常に大変で、かつ2月売上を2回貼り付けたり
3月売上を忘れたりというリスクもあります。
上記例では5ファイルですが30ファイルもあったら凄い負担です。
1発で行う方法はありますでしょうか?
ちなみに最初から1ファイルに入力し続けてでの回避は出来ません。
システムから自動に分かれて吐き出される為です。

A 回答 (3件)

雛形部分が機械に解ればできると思いますが、おそらく手動が早いでしょう。


ちなみに、ファイルは全て開いて、マルチ画面でやると早いかも。
    • good
    • 0

VBAを使うことで


「特定のフォルダにある複数のブックのすべてのシートを今開いているブックに取り込む」
ことが可能です。1月~先月まで取り込む。

この後で
(1ブックにすべての情報がありますから)
すべてのシートを集計シートにかき集める。
これもVBAでできます。

この2段階の作業で考えると仕組みも探すことができると思います。
    • good
    • 0

こんな感じでいかがでしょうか?


マクロ実行ファイルを作成し、画像のような入力箇所とボタンを作成して以下のプログラムを実行すると
作業フォルダ内にある全ての.xlsファイルのデータを新規ファイルにコピーするマクロです。
作業フォルダを作成し、そこに必要なファイルを全て格納させて使用します。
Private Sub CommandButton1_Click()
Dim MyName As String
Dim MyPath As String
Dim NewBook As String
Dim RowNo As Integer
Application.ScreenUpdating = False
RowNo = 0
Workbooks.Add 'ファイルを新規作成
NewBook = ActiveWorkbook.Name
MyPath = Cells(2, 2).Value 'パスを設定
MyName = Dir(MyPath, vbDirectory)
Do While MyName <> "" '作業フォルダ内のファイルを検索
If MyName <> "." And MyName <> ".." And Right(MyName, 4) = ".xls" Then
RowNo = fCopy(MyPath, MyName, NewBook, RowNo)
End If
MyName = Dir
Loop
Workbooks(NewBook).SaveAs Filename:=MyPath & Cells(1, 2).Value
End Sub

Public Function fCopy(MyPath As String, myBook As String, NewBook As String, RowNo As Integer) As Integer
RowNo = RowNo + 1
Workbooks.Open MyPath & myBook, , True '読み取り専用で開く
With Workbooks(myBook).ActiveSheet '開いたファイルの処理
.Range(1 & ":" & ActiveSheet.UsedRange.Rows.Count).Copy '全ての行をコピー
End With
With Workbooks(NewBook).ActiveSheet '新規作成したファイルの処理
.Rows(RowNo).PasteSpecial '新規作成したファイルに貼り付け
End With
Application.CutCopyMode = False '切り取りモード解除
Workbooks(myBook).Close False '開いたファイルを閉じる
fCopy = ActiveSheet.UsedRange.Rows.Count '最終行番号を戻す
End Function
「エクセルの複数のファイルを1つのファイル」の回答画像2
    • good
    • 0
この回答へのお礼

ご丁寧にありがとうございます。
私の能力ふそくでうまく行きません。
出来上がっても正しいかどうかチェックしなければならず
1ファイルづつ開いてつなげる方が面倒ですが安心でした。

お礼日時:2010/07/23 11:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!