[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『複数のファイルを1つのファイルに集約』(香織)
『20050210』というフォルダの中に、中にあるファイルの中のシート全てを、『総合.xls』というファイルにまとめたいのですが、どうしたらいいか教えていただけますか?
まとめる際のマクロは『総合.xls』に記載したいのですが可能ですか?
可能です。 ただし考慮すべき点があります。 各ブックに含まれるシート名には、重複の可能性があるのではないか、と言う点です。 その場合にどのような命名規則を用いるかを定めたほうがよさそうです。 例として、ファイル名&シート名として統合する等。 (ご近所PG)
(香織)
この手の質問が最近やけに多い。 http://excelfactory.net/excelboard/excelvba/excel.cgi?mode=all&namber=69743&rev=0 http://park7.wakwak.com/~efc21/cgi-bin/wwwlng.cgi?print+200502/05020076.txt (INA)
私の回答は >まとめる際のマクロは『総合.xls』に記載したいのですが可能ですか? ここ↑に対してのみと捕らえてください。 具体的なコードはINAさん紹介の場所など参照の上、まずはコーディングにトライ。 #誰かが書いてくれるかもだけど (ご近所PG)詰まったら質問
一応責任サンプルあげ。 追記:バックアップを取った上で実行の事 Sub 複数のブックのシートを一つブックにまとめる() On Error GoTo ErrorHandler Dim strPath As String Dim strBookName As String Dim TargetBook As Workbook Dim OriginalSheet As Worksheet '指定した場所にあるxlsファイルについて処理 strPath = ThisWorkbook.Path '自分自身と同じ場所とする strBookName = Dir(strPath & "\*.xls") 'ファイル名取得 '対象ファイルが存在する限り処理 Do While strBookName <> "" If ThisWorkbook.Name <> strBookName Then '自分自身じゃないなら 'そのブックを開く Set TargetBook = Workbooks.Open(strPath & "\" & strBookName) '開いたブックの全てのシートを処理 For Each OriginalSheet In TargetBook.Worksheets '開いたブックのシートを自身の最後にコピー OriginalSheet.Copy After:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count) 'コピーしたシートの名前をコピー元ブック名&シート名に変更 'ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count).Name = TargetBook.Name & OriginalSheet.Name 'コピーしたシートの名前をコピー元シート名に変更 ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count).Name = OriginalSheet.Name Next '開いたブックを閉じる TargetBook.Close Set TargetBook = Nothing End If strBookName = Dir '次のファイル Loop Exit Sub ErrorHandler: 'エラーが起きたら If Not (TargetBook Is Nothing) Then TargetBook.Close End If If Err Then MsgBox Err.Number & ":" & Err.Description, vbExclamation Err.Clear End If End Sub 総合に該当するブックの標準モジュールに記載。 対象は自分自身と同じフォルダ内の全てのxlsファイル。 シート名に関する判定及びエラー処理なし。 (ご近所PG)外出予定…
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.