- ベストアンサー
エクセルの複数のファイルを1つのファイルにする方法
- エクセルの複数のファイルを1つのファイルにする方法について教えてください。現在の方法は手間がかかりリスクもありますが、効率的に行える方法はありますか?
- エクセルの複数のファイルを1つのファイルにする方法を知りたいです。手順が煩雑でミスも起こりやすいので、簡単かつ安全に行える方法があれば教えてください。
- エクセルの複数のファイルを1つのファイルにまとめる方法を教えてください。手作業でファイルを開いてコピーする手順が煩雑で時間もかかるため、効率的な方法を知りたいです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
雛形部分が機械に解ればできると思いますが、おそらく手動が早いでしょう。 ちなみに、ファイルは全て開いて、マルチ画面でやると早いかも。
その他の回答 (2)
- layy
- ベストアンサー率23% (292/1222)
VBAを使うことで 「特定のフォルダにある複数のブックのすべてのシートを今開いているブックに取り込む」 ことが可能です。1月~先月まで取り込む。 この後で (1ブックにすべての情報がありますから) すべてのシートを集計シートにかき集める。 これもVBAでできます。 この2段階の作業で考えると仕組みも探すことができると思います。
- qyukip
- ベストアンサー率40% (13/32)
こんな感じでいかがでしょうか? マクロ実行ファイルを作成し、画像のような入力箇所とボタンを作成して以下のプログラムを実行すると 作業フォルダ内にある全ての.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ファイルづつ開いてつなげる方が面倒ですが安心でした。