ここから本文です

VBA超初心者です。 データをファイルの中から抽出したいのですが、 どなたか、...

viy********さん

2020/5/1513:57:44

VBA超初心者です。

データをファイルの中から抽出したいのですが、
どなたか、VBAに詳しい方お願いします。

やりたいこととして、フォルダ内に複数あるファイルの一部のデータを抽出したいです。
ファイルは全てフォーマットが決まっています。
それを、フォルダ外にある「まとめファイル」に一括で飛ばすようにし、なおかつフォルダ内に新規ファイルが
追加されたら自動的に更新されるようにしたいです。

上記を行うとしたら、どのようなプログラムになるのでしょうか。

閲覧数:
165
回答数:
4

違反報告

回答

1〜4件/4件中

並び替え:回答日時の
新しい順
|古い順

xrr********さん

2020/5/2121:05:36

こんにちは。一般的なやり方としては、

・フォルダ内のファイルを一本のファイルに結合(cat)する
・結合(cat)したファイルをシートに読み込む
・シートから条件に合致するレコードをのみを「まとめファイル」に出力(create)する

という方法が考えられます。ただし、この方法は差分を考慮していません。
そのため、フォルダ内のファイルが膨れ上がるにつれ、パフォーマンスが悪くなります。

vbaでは至難の技になりますが、それでもよければ、ちょっと考えさせてください(後日回答いたします)。

なお、差分を考慮するのであれば、基準点が必要となります。基準点以前は無視するという条件を付加して、差分のみを「まとめファイル」に追記するのです。基準点と条件が明確になれば、造作もないことだと思います。

  • 質問者

    viy********さん

    2020/5/2209:15:27

    返答ありがとうございます。
    色々説明不足過ぎて、難しくなってしまったことをお詫びします。
    以下が主に行いたいことになります。


    【前提】
    ・対象フォルダ名は「廃棄」の中に、複数のExcelブックがあります。
    ・抽出したい対象は、各ブック内の「概要」シートの「D6」セルに日付データ(=TODAY)と
    「C18~I29」セルに文字を含む数値でフォーマットが統一されています

    【抽出一覧作成イメージ】
    ・「集約.xlsm」ブックの「Sheet1」の2行目から抽出した結果を一覧表示する。
    ・表示はA列に日付データ、B列からG列まで「概要」シートの「C18~I29」を表示する。
    ・「廃棄」フォルダにExcelブックが追加されるたびに自動更新するのが望ましい

    というようなイメージです。
    とても勝手なお願いではありますが、よろしくお願いいたします。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

よこまやさん

2020/5/2120:11:15

飛ばすが標準語と勘違いされてるだけですよね。
方言なんです。

通じない事が判ってよかったと思います。

公共の場では移動させるとか言わないとね。

イベントは判りますかね? 検索して判らなければ
お尋ね頂けば。調べたURLとどこが判らないかを添えて。

por********さん

2020/5/1607:54:42

こんにちは。
監視したいエクセルブックは、決められたフォーマットでできている
「まとめファイル」に1行に1ファイルの転記をします
監視のフォルダに、新規追加する(コピー対象が追加される)

という状況だとして、計算の流れ
1) 監視対象のフォルダのファイル一覧表。更新日時
現在の一覧表を作成し、古い一覧を更新。
新規のブックがあったら、行が追加される。

2) 一覧表をチェック。転記したタイムスタンプのないとき、
ひとつのファイルに対して、転記を実行。転記が終わったら、一覧表には「転記したタイムスタンプ」

3) 転記したタイムスタンプよりも、ファイルの更新日時が最近の場合
==> 転記の必要があるのかの判断が仕様として必要です

VBAの質問ですから、エクセルでデータを取り扱いする前提、、のつもりが主さまにあったのだとしたら、それは認識間違い。
VBAはエクセルだけ扱うのではありませんから、「こんなシステム」の説明に、例えば、でいいのでイメージできる材料を考えてください。

lar********さん

2020/5/1516:35:07

>「まとめファイル」に一括で飛ばすようにし
→「一括で飛ばす」という表現が分かりません。何がしたいのでしょうか?
また、「まとめファイル」とは1つのファイルでしょうか?
もし、1つのファイルに収集するのであれば、既に収集済みのデータの一部がファイル元で修正された場合はどうするのでしょうか?

>なおかつフォルダ内に新規ファイルが
>追加されたら自動的に更新されるようにしたいです。
→これはVBAでやることではないと思いますが…
本来であれば、C#やVB.NETなどを使用するのが一番だと思います(目的のイベントもありますし)。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる