こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルVBAで CSVファイルからのデーター参照

エクセル2000を使用しています。
CSVで社員リストを作成して、エクセル上の指定のセルに
氏名を入力すると、年齢、性別、入社日等が他のセル表示出来るように
指定のですが、VBAでやるとすれば、どの様なコードになるのでしょうか??
 現在は、OPENイベントを使用して、エクセルの別のシートにCSVファイルの全ての内容を読み込んでいます。そしてMAINのシートではLOOKUPを使用しているのですが、ファイル起動時に時間が掛かり、困っています。 エクセルとCSVの間で直接、データーのやり取りをしたいのですが・・・。

投稿日時 - 2008-09-26 16:40:54

QNo.4358210

困ってます

質問者が選んだベストアンサー

こんにちは。

>OPENイベントを使用して、エクセルの別のシートにCSVファイルの全ての内容を読み込んでいます。

OpenText とか、QueryTables.Add で読んでいるのだと思います。しかし、単独で、CSV を読み込むなら、手間は掛かりません。また、事前バインディングでも、DAO,ADOやODBCなどオブジェクトからインスタンス生成する時にオーバーヘッドが生じてしまうように思います。遅い速いを言うなら、ある程度の違いはあっても、だいたいどれも同じではないでしょうか。

書き換えは、そのままでは出来ませんが、関数なら、開かないままに、以下のようにすればよいです。書き換えするときに、直接、開けばよいと思います。

サンプル
A1に検索値をおく場合。

=VLOOKUP(A1,'C:\Documents and Settings\[User Name]\My Documents\[Test1.csv]Test1'!$A$1:$G$20,2)

投稿日時 - 2008-09-28 11:15:10

ANo.3

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

#1さんの回答の通りですが(参考URLをご覧下さい)、「やり取り」の「取り」は出来ても、「やり」の方は、CSVを部分的に更新する事はできないのではないでしょうか?
「やり取り」したければ、CSVではなく、mdb(Access2003までのファイル形式)形式にしてはいかがでしょうか。エクセルから新規に作成する事も可能です。(Accessの入っているPCがあれば、そちらで作って移動する方が楽ですが)
?http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_130_030.html?
?http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_130_070.html?

参考URL:http://blog.livedoor.jp/akf0/archives/51387288.html

投稿日時 - 2008-09-27 09:26:57

ANo.1

ODBCでテキストドライバーを使用して「テーブルとして」接続する。

投稿日時 - 2008-09-26 17:06:13

あなたにオススメの質問