dポイントプレゼントキャンペーン実施中!

定型書式のエクセルデータが数百あります。
その複数のファイルを1ファイルにまとめたいのです。
コピー&ペーストを繰り返すのではなく、簡単にできる方法がありますでしょうか。
よろしくお願いいたします。

A 回答 (3件)

>実際の作業ファイルのシート名にしようと試みました。


マクロ文中の"Sheet1"を全て実際のシート名(例えば"data form")へ置き換えたのですが

これは、数百あるデータが、"data form"のシートに有るとすれば、
>file_name = Dir(m & "*.xls")
Do While file_name <> ""
If file_name <> m_file_name Then
Workbooks.Open Filename:=m & file_name
この下部分のコード
' Sheets("Sheet1").Select

Sheets("data form").Select
に変えてください。

その下にある11ヶ所のm_file.Sheets("Sheet1").はまとめ用のファイルのシートを指定しています。

また、一番左端にあるシートを指定したい場合は、Sheets(1)のように、括弧の中は数字の1になります。

でわ、よろしく
    • good
    • 0
この回答へのお礼

何度もありがとうございます。できました!
これで月曜日の仕事のめどがつきました。
本当にありがとうございました。
これを機会に、マクロを勉強したいと思います。
(まずは簡単なものから・・・)

お礼日時:2004/01/17 17:30

こんにちわ、これで如何ですか。


各ファイルのシート"Sheet1"にデータがあります。

Sub file_sam()
Application.ScreenUpdating = False
Dim file_name
Dim m_file_name As String
Dim j As Long
Dim m_file As Workbook
Dim m As String
Set m_file = ThisWorkbook
m_file_name = ThisWorkbook.Name
j = 2
m = "C:\Exle_Data\"
'C:\Exle_Data\を実際のフォルダに変えてください。

file_name = Dir(m & "*.xls")
Do While file_name <> ""
If file_name <> m_file_name Then
Workbooks.Open Filename:=m & file_name
' Sheets("Sheet1").Select
m_file.Sheets("Sheet1").Range("A" & j) = j - 1
m_file.Sheets("Sheet1").Range("B" & j) = Range("D3")
m_file.Sheets("Sheet1").Range("C" & j) = Range("D4")
m_file.Sheets("Sheet1").Range("D" & j) = Range("D5")
m_file.Sheets("Sheet1").Range("E" & j) = Range("D6")
m_file.Sheets("Sheet1").Range("F" & j) = Range("D7")
m_file.Sheets("Sheet1").Range("G" & j) = Range("J4")
m_file.Sheets("Sheet1").Range("H" & j) = Range("J5")
m_file.Sheets("Sheet1").Range("I" & j) = Range("J6")
m_file.Sheets("Sheet1").Range("J" & j) = Range("J7")
m_file.Sheets("Sheet1").Range("K" & j) = file_name
file_name = Dir
j = j + 1
Application.DisplayAlerts = False
ActiveWindow.Close
Application.DisplayAlerts = True
Else
file_name = Dir
End If
Loop
End Sub
    • good
    • 0
この回答へのお礼

書いていただいたマクロ文をそっくり貼り付けたところ、うまく動作しました!ありがとうございます。
重ねての質問で恐縮ですが、実際の作業ファイルのシート名にしようと試みました。
マクロ文中の"Sheet1"を全て実際のシート名(例えば"data form")へ置き換えたのですが、『実行時エラー'9':インデックスが有効範囲にありません』となります。
もしかしたらシート"名"は関係なく、一番左端にあるシートが"Sheet1"と定義されるのでしょうか?(それも変か・・・)
すでにお気づきだと思いますが、マクロを触ったのは、今回が初めてです・・・
お時間ありましたら、再度アドバイスをいただけますでしょうか。
よろしくお願いいたします。

お礼日時:2004/01/17 12:14

DBでやるのがベストだと思います。


その結果をエクセルから取り込みます。
    • good
    • 0
この回答へのお礼

早速回答をいただき、ありがとうございます。
実は、EXCEL初心者なもので・・・DBというのは何になりますでしょうか?(Data Baseしか思いつきません)

お礼日時:2004/01/17 12:02

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