こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

ExcelVBAで同一フォルダにある複数ファイルの特定セルの値を纏めたい

VBA初心者です。同じような質問があがっていましたが、初心者のため応用が効かずよく分からないので教えてください。(Excel2003使用)

Cドライブの直下に仮に「注文」という名前のフォルダがあり、
その中に同じ形式のExcelファイルが複数入っています。
(ファイルの名前は全て異なります)

各ファイルのsheet1にB2セルは発注した人の名前、H4、H7に注文した商品の単価、H14に合計額(SUM関数)が入ってます。
このB2セルとH4、H7、H14の値のみを別ファイルに一つにまとめたいのですがどうすればよいでしょうか。

      A列             |B列    |C列    |D列 
--------------------------------
1行目  |○○(B2の名前)   |15(H4)|10(H7)|25(H14)
--------------------------------
2行目  |△△(別ファイルB2) |0      |15    |15
--------------------------------
3行目  |××(別ファイルB2  |20     |0     |20

といった感じにしたいです・・

よろしくお願いします。

投稿日時 - 2009-11-01 00:33:27

QNo.5412557

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

ブックを読んで、各ブック(名)を捕まえるのは
http://okwave.jp/qa5411462.html
と同じ内容の質問では無いか。
でも初心者には難しいと思う。
ーー
各ブックを捉えて、その中の決ったシートのセルの値を開いているシートに一覧化するコードは目算がついているのか。
搗いて無いレベルだと、そっくりコードを書いてくれ(丸投げ質問)にならざるをえないが。

投稿日時 - 2009-11-01 09:26:04

ANo.1

別ファイルが
>Cドライブの直下に仮に「注文」という名前のフォルダがあり、
ここに入っていないとします。

Sub try()
 Dim wb As Workbook
 Dim r As Range
 Dim P_name As String
 Dim F_name As String

 Application.ScreenUpdating = False

 Set r = ActiveSheet.Range("A1")

 P_name = "C:\注文\"
 F_name = Dir(P_name & "*.xls", vbNormal)

 Do Until F_name = ""
    Set wb = Workbooks.Open(P_name & F_name)

    With wb.Worksheets("Sheet1")
         r.Value = .Range("B2").Value
         r.Offset(, 1).Value = .Range("H2").Value
         r.Offset(, 2).Value = .Range("H4").Value
         r.Offset(, 3).Value = .Range("H14").Value
    End With

    Set r = r.Offset(1)
    wb.Close False
    F_name = Dir()
 Loop
 Set r = Nothing
 Set wb = Nothing
 Application.ScreenUpdating = True
End Sub

一例です。
ご参考になれば。

投稿日時 - 2009-11-01 06:15:30

あなたにオススメの質問