[[20120420224652]] 『チェックシート』(saya) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『チェックシート』(saya)

 複数ブックの同じシートの特定セルの内容を抽出し、1つのチェックシート用の
 エクセルに貼り付けたいのですが、可能でしょうか。
複数ブックは1つのフォルダの中に入れます。特定セルは複数のシートにまたがっています。

 Book1 Sheet1:A5, B10/Sheet3:C1
 Book2 Sheet1:A5, B10/Sheet3:C1
 Book3 Sheet1:A5, B10/Sheet3:C1
  ・
  ・ 

 チェックシート用ファイル
 A列   B列      C列      D列 
 Book1  Sheet1:A5   Sheet1:B10  Sheet3:C1
 Book2  Sheet1:A5   Sheet1:B10  Sheet3:C1
 Book3  Sheet1:A5   Sheet1:B10  Sheet3:C1

 WindowsVista Excel2003


新規ファイルのB列以降に、1行目にシート名、2行目に取得したい位置を記載して、
        A       B       C       D
 1             Sheet1  Sheet1  Sheet3
 2 ファイル名  A5      B10     C1
 3

 下記を実行してみてどうでしょう。

 Option Explicit
 Sub MakeDataList()
    Dim fso
    Set fso = CreateObject("Scripting.FileSystemObject")

    Dim srcWS As Worksheet
    Set srcWS = ActiveSheet

    Dim folderPath
    With Application.FileDialog(msoFileDialogFolderPicker)
        If .Show <> True Then Exit Sub
        folderPath = .SelectedItems(1)
    End With

    Dim row As Long
    Dim col As Long
    Dim lastCol As Long

    row = 3
    lastCol = srcWS.Range("B2").End(xlToRight).Column
    If lastCol = Columns.Count Then
        MsgBox "取得位置が範囲が未定義です "
        Exit Sub
    End If

    Dim file
    For Each file In fso.GetFolder(folderPath).Files
        With Workbooks.Open(folderPath & "\" & file.Name)
            srcWS.Cells(row, "A").Value = file.Name
            For col = 2 To lastCol
                srcWS.Cells(row, col).Value = .Worksheets(srcWS.Cells(1, col).Value).Range(srcWS.Cells(2, col).Value).Value
            Next
            .Close
            row = row + 1
        End With
    Next
 End Sub
 (Mook)

 Mookさん

 すごい!
 こんなのできるんですね。
 今まで回りくどい関数でやってたんです。
 マクロ、勉強しなきゃと思いました。

 思い通りのものが出来ました。これなら柔軟に使用できそうです。
 ありがとうございました。

 saya

以前上記コードを頂いたsayaです。その節はお世話になりました。
上記マクロを少し応用してまた使いたいのですが、どうすればいいのか分かりません。

フォルダの中に複数ファイルがあり、選択した複数ファイルを対象としたい。
ファイル名はばらばらでファイルのフォーマットも数種類ある。1行目のシート名も
数種類ある。

(例えば)3種類のファイルがあり、フォーマットもそれぞれ別になっています。
シート名もそれぞれ3種類が別になっています。
これを纏めて1つのエクセルでリストにしたいのです。

ファイル選択画面を以前のフォルダ指定から複数ファイル選択に変更し、
シート名で判断してそれぞれの列に値を出したいのです。尚、元ファイルが計算式に
なっているセルがあるので、貼り付ける際には「値で貼り付け」にしたい。

saya


 この質問は別で新たに質問にしました。
 ご迷惑をおかけします。

 (saya)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.