プロが教える店舗&オフィスのセキュリティ対策術

Excelのファイルを配布したのですが回収した後のことを考えていなかったので困っています。

回収した複数のExcelのファイルを簡単に1つのファイルにまとめる方法はありますか?

配布した際にわかり易くと思いすべてのファイル名は異なるファイル名にしてます。数は300弱です。

マクロを組むにも300個のファイル名称になっているのでどうしたら良いのか困っています。

A 回答 (3件)

okumaru さん、こんばんは。


1.C:\My Documents\ に全ファイルを集め
2.集める対象のシートは必ず各ファイルの1枚目のシート
という前提で以下のようにすればできる気がします(無責任ながら、未検証ですけど)。

Sub CollectSheets()
Dim strPath As String
Dim strFileName As String

strPath = "C:\My Documents\"
strFileName = Dir(strPath & "*.xls")
Do Until strFileName
Workbooks.Open Filename:=strPath & strFileName
Workbooks(strFileName).Worksheets(1).Move agfter:=ThisWorkbook.Sheets(Sheets.Count)
Workbooks(strFileName).Close savechange:=False
strFileName = Dir
Loop

End Sub

でも、単純に考えると、300ものシートが1Bookに集められると...
どうなんでしょう (^^;
    • good
    • 0

まずは、ここら辺から・・



>マクロを組むにも300個のファイル名称になっているのでどうしたら良いのか

 300個のファイルを一つのフォルダに集めて、
そのフォルダに、コマンドプロンプトのプロパティ「作業ディレクトリ」を空欄にしたやつをコピーしましょう。(作業を楽にするためです。Change Directory コマンドを知っているなら、cd で移動するほうをお勧めします)
そのDOS窓から、dir /B *.xls > files.csv [Enter] と入力し、 files.csv をEXCELで開くと、XLS拡張子のファイルリストが出来ています。

これなら、少しはマクロを組むのがカンタンになったのでは?

まだダメなら、貴方のマクロプログラムレベルを補足して下さい。(xxxならできるとか、xxxならやったことがあるとか)
    • good
    • 0

「考え方」について、です。



「まとめるためのブック」にマクロを記述します。
内容は「1.指定されたブック(一件)の全シートを自分自身の末尾に追加する」。
(マクロの記録でできますよね)

で、300件のブック名を一覧シートにしておいて、
セルの値がなくなるまで
繰り返すマクロで「1.」を呼び出す。

でしょうか。
    • good
    • 0

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