- 締切済み
ExcelでBook毎の同一セルを抽出したい!!
すみません困っています!! Bookが900以上ありますが,Book1~Book900までのひとつのセル(例えばB3)を抽出して,新しいBookに貼り付けるにはどうしたら良いでしょうか?? 何か良い方法はありませんか? どなたかご教授願います.
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- WWolf
- ベストアンサー率26% (51/192)
Drph=ブックの入っているフルパス ITI=セルの番地 Sub Test() Dim fs, f, f1, fc, fn, s, sy, DrPh, ITI, Da DrPh = "c:\" ITI = "R1C1" Set fs = CreateObject("Scripting.FileSystemObject") Set f = fs.GetFolder(DrPh) Set fc = f.Files For Each f1 In fc s = f1.Name sy = Right(s, 3) If sy = "xls" Then q = " '" & DrPh & "\[" & s & "]sheet1'!" & ITI Da = Application.ExecuteExcel4Macro(q) MsgBox Da End If Next End Sub
- imogasi
- ベストアンサー率27% (4737/17069)
Option Explicit Sub GetFromFile() Dim FileName, CellName, PathName, SheetName, arg As String Dim result Dim i As Long i = 1 PathName = "C:\My Documents\" FileName = Dir(PathName) GoSub setdata '------ Do FileName = Dir() If FileName <> "" Then If Right(FileName, 4) = ".xls" Then GoSub setdata End If End If Loop While FileName <> "" '------- End '================== setdata: SheetName = "Sheet1" CellName = "A1" arg = "'" & PathName & "[" & FileName & "]" & SheetName & "'!" & Range(CellName).Range("A1").Address(, , xlR1C1) result = ExecuteExcel4Macro(arg) Worksheets(1).Cells(i, 1).Value = result i = i + 1 Return End Sub ---------- ブック・シート保護がかかっていないこと。 ファイルを開かないで処理してます。先ほどから質問のあるExecuteExcel4Macroを使って見ました。 ●PathName = "C:\My Documents\"を自分のケースに変えることと、この後は今問題にしているフォルダ名をいれ、フルパス名にすること。 テスト済み。
- papayuka
- ベストアンサー率45% (1388/3066)
ブック名がBook1,Book2のように規則性があり、シート名も同じで抽出したいセルも同じである。 上記のブックが全て集計したいブックと同じフォルダ内にある。 集計ブック名は命名規則と異なるものである。 上記に全て当てはまるなら、こんな感じのマクロでイケるのではと思います。 Sub Test() For i = 1 To 900 Range("A" & i).Value = _ "='" & ThisWorkbook.Path & _ "\[Book" & i & ".xls]Sheet1'!B3" Range("A" & i).Value = Range("A" & i).Value Next i End Sub
- Mahk2
- ベストアンサー率29% (15/51)
VBAのマクロ作ればそれほど難しくはないです。 フォルダ内の全ファイル(*.XLSに対して)をループして、各ファイルを開いて特定セルの内容を結果ワークシートに書き込むというのを繰り返せばOKですよ。 WORKBOOKを開かずにやると高速ですが、ちょっとプログラム的には面倒です^^;