[[20230314163512]] 『複数のブックの特定のセルのデータを新しいブック』(もい) ページの最後に飛ぶ

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

 

『複数のブックの特定のセルのデータを新しいブックで一覧にしたい』(もい)

はじめての利用になります。お手柔に説明頂けると助かります。

ひとつのフォーマットをコピーしてデータ入力をしています。その複数のファイル(ざっと70個)から特定の位置のセルデータを抜き出して新しいブックで一覧で出したいです。
例えば(名前、日付、年齢等)

フォーマットは固定されているのでデータの位置などは変わりません。
良い方法があれば教えてください。よろしくお願いします!

< 使用 Excel:Excel2019、使用 OS:Windows11 >


多分パワークエリでできると思います。

https://hamachan.info/excel2019-powerquery-folder/
http://officetanaka.net/excel/function/GetAndTransform/04.htm
(フォーキー) 2023/03/14(火) 16:42:51


パワークエリは不得手なのでマクロ案で。

>フォーマットは固定されているのでデータの位置などは変わりません。
ということなので、まずフォーマットに作業シートを仕込んでおき、リンク貼り付けなどで、データが1行になるよう整えます。

次に、

 新規ブックを追加する

 目的のファイル(ブック)を開く
 開いたブックの作業シートのリンクされている範囲をコピーします。
 用意しておいた、新規ブックの1番目のシートの1行目に値のみ貼付します。
 開いたブックを閉じます。

 目的のファイル(ブック)を開く
 開いたブックの作業シートのリンクされている範囲をコピーします。
 用意しておいた、新規ブックの1番目のシートの2行目に値のみ貼付します。
 開いたブックを閉じます。

 ・
 ・

のようなマクロを作成し実行します。

これで、仰ることは実現可能だとおもいますから、興味があればトライしてみてください。

(もこな2) 2023/03/16(木) 09:23:05


こんにちは。。。^^
パワクエ、でもう解決されたのでしょうか。ならよいのですが
マクロで良ければ、ロジックは違うかもしれませんが、さらに
具体的に、シート名セル番地が解るように、読込み対象シート
と、求める結果のシートのご説明を賜れば、何かお手伝い出来
るかも。。。しれません。←多分、ですが。。。ダメかも^^;
私が無理でも、多数、アドバイスが有るかもしれません。でわ
m(__)m
(隠居Z) 2023/03/16(木) 14:32:50

みなさん、ありがとうございます!

自分でも調べてパワクエを使用したりしもしたのですが、量の多いのか
セルを結合しているフォーマットだからか全てのファイルから抜き出せないことが多く、続いてません💦

(もい) 2023/03/18(土) 14:32:55


 >セルを結合しているフォーマット

セル結合があるなら、多分パワークエリでは無理だと思います。
セル結合を使用しないフォーマットに変更できないのであればマクロになりますが、具体的なレイアウトがないと回答できないです。
(フォーキー) 2023/03/18(土) 14:49:38


>自分でも調べてパワクエを使用したりしもした
>セルを結合しているフォーマットだからか全てのファイルから抜き出せないことが多く、続いてません
マクロのほうを検討したのかどうか不明ですが、既にブックを作ってしまってありそちらに手を入れたくないということならば↓のようなアプローチもあると思います。
 #具体的なレイアウトが不明ですから転記するセルは適当です。
 #状況によってはセル値の直接参照ではなく、コピペのほうが良いと思います。

    Sub テキトー()
        Dim ブック名 As String
        Dim 出力行 As Long
        Dim WB As Workbook

        出力行 = 2
        ブック名 = Dir(ThisWorkbook.Path & "\" & "*.xls?")

        With Worksheets.Add(after:=ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count))
            .Range("A1:G1").Value = Array("由来ブック", "項目1", "項目2", "項目3", "項目4", "項目5", "項目6")
            Do Until ブック名 = ""
                If ブック名 <> ThisWorkbook.Name Then
                    Set WB = Workbooks.Open(ThisWorkbook.Path & "\" & ブック名)
                    .Cells(出力行, "A").Value = WB.Name
                    .Cells(出力行, "B").Value = WB.Worksheets(1).Range("A11")
                    .Cells(出力行, "C").Value = WB.Worksheets(1).Range("B22")
                    .Cells(出力行, "D").Value = WB.Worksheets(1).Range("C33")
                    .Cells(出力行, "E").Value = WB.Worksheets(1).Range("A1")
                    .Cells(出力行, "F").Value = WB.Worksheets(1).Range("A2")
                    .Cells(出力行, "G").Value = WB.Worksheets(1).Range("B1")

                    WB.Close False
                    出力行 = 出力行 + 1
                End If
                ブック名 = Dir()
            Loop
        End With
    End Sub

(もこな2) 2023/03/18(土) 19:41:55


コメント返信:

[ 一覧(最新更新順) ]


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