[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『他のファイルからデータの取り込み』(Trial)
同一フォルダ内に存在するそのファイル以外の 全てのエクセルファイルから データを取り込みたいのですが、その際に、 1. ファイルに対して相対参照で行えるのか? 2. ファイル名は指定しなくてもできるのか? 3. データ元となるファイルは開かなくてもできるのか? という3点で疑問があります。上記の3点については できれば、という程度ですが、本題は、 そのファイルからデータを取り込む際に、 01.xls!C1 に値がある場合は、 01.xls!A1,B1,C1の値をA1,B1,C1に、 01.xls!C2 に値がある場合は、 01.xls!A1,B1とC2の値をA2,B2,C2に 01.xls!C3 に値がない場合は、 何も取り込まないというようなマクロを作成できるでしょうか。 よろしくおねがいします。
細かい回答は出来ませんが、参考になりそうなのを張っときます。 [[20050210100639]] 『複数のファイルを1つのファイルに集約』(香織) (ご近所PG)
> 1. ファイルに対して相対参照で行えるのか?
相対参照はできないと思いますが、 ThisWorkBookのパスを取得してそこから2階層あがったところ、 などの指定をしておけばそれに近いことは可能です。
> 2. ファイル名は指定しなくてもできるのか?
指定したい.xlsファイルが格納されているディレクトリが決まっていて そこに存在するエクセルファイル全て、ということであれば Dirを使ってファイル名を取得できます。
> 3. データ元となるファイルは開かなくてもできるのか?
データを参照する際に、DAOを使えば可能です。 ただし、参照先のファイルが、データベーステーブルの形式になっている必要があります。 一つのシートの1行目にフィールド名があって、その下にデータが並んでいるという形式です。 それ以外の場合ではファイルは開いていないと取得できません。
> 01.xls!C1 に値がある場合は、 > 01.xls!A1,B1,C1の値をA1,B1,C1に、 > 01.xls!C2 に値がある場合は、 > 01.xls!A1,B1とC2の値をA2,B2,C2に > 01.xls!C3 に値がない場合は、 > 何も取り込まないというようなマクロを作成できるでしょうか。
できます。ただし、上記3の方法で行い場合には、シート名とフィールド名を明確に しておく必要があります。 そうでなければマクロを使うよりも、関数を使った方が簡単だと思います。 表示セルやファイルが決まっているなら、IF関数でできると思いますが・・。
参考になりますか? (yc)
よく読んで考えてトライしてみます。 ありがとうございました。
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.