- ベストアンサー
複数のエクセルを1つのエクセルに
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 時々、出てくる質問のような気がします。物理的なメモリの余裕などを度外視すれば、以下のようなコードで可能です。 ファイルを選択する時は、Ctrl キーを押しながら複数選ぶか、Shiftキーを押しながらファイルを複数選びます。コピーされたシート名は、一応、ファイルのベース名(.xlsの拡張子を取ったもの)とシート番号が付きます。 なお、統合ファイルは、最後に保存する時に、ファイル名を聞いてきますから、『拡張子を入れず』名前をつけてください。そして、このマクロを登録したブックのフォルダに作成されます。 なお、プロテクトされたブックは、選択しないでください。今のところ、その処理をしておりません。一応、何度も試験はしてみたものの、まだ、不具合があるかもしれませんから、何度かテストしてみてから本番に掛かってください。また、あまり巨大になるようでしたら、マクロの途中で不具合を起こすかもしれません。 'なるべく標準モジュールに登録してください '------------------------------------ Sub BooksUnifying() Dim FileNames As Variant Dim fn As Variant Dim i As Long Dim j As Long Dim NewBook As Workbook Dim SheetsCount As Integer Dim NewBookName As String Dim buf As String On Error Resume Next 'Ctrl キーを押しながらファイルを選ぶか、または、Shiftキーを押しながらファイルを選ぶ FileNames = Application.GetOpenFilename( _ "Excel(*.xls),*.xls", Title:="ファイル選択", MultiSelect:=True) If VarType(FileNames) = vbBoolean Then Exit Sub SheetsCount = Application.SheetsInNewWorkbook Application.SheetsInNewWorkbook = 1 Set NewBook = Workbooks.Add On Error Resume Next Application.ScreenUpdating = False For Each fn In FileNames With Workbooks.Open(fn, ReadOnly:=True) For i = 1 To .Worksheets.Count If WorksheetFunction.CountA(.Worksheets(i).Cells) > 0 Then If j > 0 Then NewBook.Worksheets.Add After:=NewBook.Sheets(j) End If .Worksheets(i).Cells.Copy NewBook.ActiveSheet.Range("A1") buf = Replace$(fn, Left$(fn, InStrRev(fn, "\")), "") buf = Mid$(buf, 1, InStr(buf, ".") - 1) NewBook.ActiveSheet.Name = buf & "-" & i j = j + 1 End If Next i .Close False End With Next fn Application.ScreenUpdating = True NewBookName = Application.InputBox("新規ブック名を付けてください。", Title:="新規ブック名", Type:=2) If NewBookName <> "False" And NewBookName <> "" Then NewBookName = Replace$(NewBookName, ".xls", "", , , vbTextCompare) NewBook.SaveAs ThisWorkbook.Path & "\" & NewBookName End If Set NewBook = Nothing ThisWorkbook.Activate Application.SheetsInNewWorkbook = SheetsCount End Sub
関連するQ&A
- エクセルの複数、複数シートを一つにする
エクセルの複数のシートを一つにしたいと思います。 それぞれのタイトルは若干順序や内容がちがいます。 どうもミスが多いので、ミスなく早く一つにできる方法はありませんか。 また、複数のよく似たエクセルを一つにする場合は、 一つのエクセルにシート別にして、複数シートから1シートにする方法が早いでしょうか。 マクロなどは使えないので、力技の方法とミスを少なくする方法をご紹介いただけるとたすかります。
- ベストアンサー
- オフィス系ソフト
- 複数のエクセルを一つに貼り付け
複数のエクセルファイルを一つのエクセルファイルの中のシートに マクロを利用してデータを貼り付ける方法はありますでしょうか? 実績表というフォルダ内に、下記のエクセルファイルがあります。 ・貼付け元のエクセルファイル名:実績表+3桁数値 →10ファイル ・1つに集計したいエクセルファイル名:実績表 ※その中に、貼付け元のファイル名と同じシート名が10シートあります。 できれば、「値の貼付け」でなはく、数式も含めた状態のデータを貼付けしたい。 是非、マクロのコードを教えていただきたく、宜しくお願い致します。
- 締切済み
- 経営情報システム
- 複数Excelファイルの一括インポートしたい。
複数Excelファイルがあります。(aaa.xls、bbb.xls・・・) 同フォルダ内にあるExcelファイル(20個ほど)を1つのファイルにしたいのですが、 手動コピペ以外の方法を教えていただけますでしょうか? できれば、マクロ、VBAでお願いします。 ワークシート名はすべて同じです。(Sheet1のみ取り込みたい(無理であれば他も取り込みしてもOK)) 1つのファイル内で横に並べるようにしたいです。(ファイル名か、Sheet1_1,Sheet1_2・・・) よろしくお願いします。
- ベストアンサー
- その他MS Office製品
- 複数のEXCELファイルより一部の行を自動でマージするマクロ
「(1)複数のEXCELファイル」より、「(2)特定のシート」の中のさらに「(3)特定の行」をコピーし、あるEXCELファイルの1シートに挿入していくマクロ(VBA)か、ソフトが掲載されているサイト、もしくは、やりかたを教えてください。 1.EXCELは、2003 2.「(1)複数のEXCELファイル」は、一つのフォルダにあり、データ形式は一緒。 そのフォルダにはEXCELファイルしか置きません。 3.「(2)特定のシート」について、シート名はどれも一部のみ一致します。 または位置(順番)は一緒です。 4.「(3)特定の行」はどのファイルも作りが一緒です。 VBA初心者ですが、ヒントをいただければ頑張りたいと考えています。
- ベストアンサー
- オフィス系ソフト
- 複数のExcelファイルをまとめる方法
複数のExcelファイルを1つのExcelファイルにまとめる方法(ソフト)を教えてください。 まとめる際に1ファイルが1シートになるようにまとめたいのです。 つまり5つのファイルがある場合、5つのシートにしたいのです。 コピー&ペーストで頑張ればできますが、自動でできるフリーソフトかマクロがないか探しています。
- ベストアンサー
- オフィス系ソフト
- 複数のエクセルシートの表をひとつにまとめたい。
複数のエクセルシートの表をひとつにまとめたい。 複数のエクセルシートにある表を、1つのシートにまとめたいのですが、いい方法はありますか? マクロは使い方がわからないので、簡単な方法があると助かります。
- ベストアンサー
- オフィス系ソフト
- 複数のExcelを1つのExcelに
Excel.xlsの1シート目に、フィールドとデータが入っています。このExcelが担当者ごと複数存在します。 複数のExcelを1フォルダにまとめ、1行目はフィールド・あとは全てデータとして、1つのExcelブックの1シートへまとめることは可能でしょうか? フィールドは38列、行数はブックごと異なり、ブック名も担当者ごと異なります。 いろいろ調べたのですが、VBA初心者の為、VBAを貼り付けて実行してもうまくいきませんでした。 できれば、元ファイルは消さないよう、コピーのみ行いたいと思っています。 フォルダ名は C:\出庫依頼書 です。 どなたかご教授いただけませんでしょうか。
- ベストアンサー
- その他MS Office製品
- Excelの複数のシートを一つのシートに結合したい
一つのエクセルファイルに複数のシートがあります。 このシートを一つのシートにまとめる効率の良い方法を教えてください。 なお、私は、マクロ等の使用方法がわからないため、マクロでご回答 される場合は、お手数ですが、手順を記載してください。 宜しくお願い致します。
- 締切済み
- Excel(エクセル)
- 複数のエクセルファイルのデータを新規のファイルで一覧表にまとめるには?
1つのホルダーの中に1000のエクセルファイルがあり、これらのファイルには、複数のシートがあります。これら1000のファイルから指定するシート(シートの様式とシート名は同じ)のデータ(C5:C17)を一覧表にまとめたいのです。 1000のエクセルファイル名は、○_■(○:個別、■:共通)で、一覧表は新たなエクセルファイルを作成し、1行目は左(A1)から順に、○(ファイル名の個別の部分)、C5のデータ、C6のデータ..C17のデータを 2行目には次のエクセルファイルの○(ファイル名の個別の部分)、C5のデータ、C6のデータ..C17のデータを ・・ と1000ファイルのデータをコピー&ペーストしたく、マクロ作りに挑戦したのですが、うまくいきません。どなたか助けてください。よろしくお願いいたします。
- 締切済み
- Visual Basic
- シートを複数持つExcelファイルを複数ファイル結合する方法
シートを複数持つExcelファイルを複数ファイル結合する方法 ○○○工事・▲▲▲工事・■×○工事・・・・と複数のEXCELファイルが有り そのファイルの中には共通してA・B・C・D・・・・シートがあります。 各EXCELファイルの同じ名前のシートを取り出して1つのファイルにしたいと思っています。 1つのファイルにした時、各シート名が抜き出したファイル名になるようにしたいです。 50ファイル以上ありシート数が20ある為、なんとかいい方法をお教え下さい。
- ベストアンサー
- オフィス系ソフト
お礼
No.1さん、回答ありがございます。 教えてくれたマクロで僕が思っていたとおりに出来ました。 どうも有難うございます。うれしい限りです。