[[20050927081735]] 『他のファイルからデータの取り込み』(Trial) >>BOT

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

 

『他のファイルからデータの取り込み』(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)

『ありがとうございました』(Trial)
 よく読んで考えてトライしてみます。
 ありがとうございました。

コメント返信:

[ 一覧(最新更新順) ]


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