『マクロで開いたファイルのデータを読み込まない』(SS) 昨日から「エクセルの学校」でマクロの勉強を始めたばかりのチョー初心者です。 毎日、仕事でネットワークの中にある数個のデータファイルを開き、”VLOOKUP関数” の入った集計ファイルにデータを取り込むのが日課となっています。 そこで昨日、覚えたばかりのマクロでファイルを開くようにはしたのですが、 開いた先のデータを読み込んでくれません。 不思議な事にマクロを使用せずにファイルを開いた場合にはデータは更新されています。 初心者に是非アドバイスをお願いします。 ---- どのようなプログラムで処理したのでしょうか? (INA) ---- ChDir "D:\" Workbooks.Open Filename:="D:\データxls.xls" Windows("Book1.xls").Activate End Sub こんなのですが?。  よろしくお願いいたします。 ---- >Workbooks.Open Filename:="D:\データxls.xls" データxls.xls ってファイル名ですか? データ.xls では? >Windows("Book1.xls").Activate Book1.xls は開いてあるのでしょうか? これがマクロのブックのこと? (INA) ---- (INA)さんへ 初心者なもので要領を得ない質問で申し訳ありません。 ”データxls.xls ”というのはファイル名です。xlsというのが拡張子とダブリでまぎらわしいですが。 それと"Book1.xls"というのがマクロ文のかいてあるファイルで、最初に開くファイルです。 このファイルを開きマクロをスタートさせて¥データxls.xlsを呼び出してVLOOKUPで検索し その結果を ¥Book1.xlsに取り込みます。 今日、試して解かったことなんですけど、ネットワーク中のファイルでなく自分のパソコンの中で 前述の二つのファイルを作りマクロで開いた場合には正常にVLOOKUPが働いていました。 ・・・わかんねー・・・・?(SS) ---- [INA]さん割り込んでスミマセン。 私も「わかんねえー」ですヨ。 最初に集計ファイル(Book1)を開く、その中にVLOOKUPがある。 集計ファイルを開くとデータファイル(データxls)が自動的に複数開く。 集計ファイルのVLOOKUPのテーブルデータとしてデータファイルが使われている ということだと思います。 問題の中心はVLOOKUPなのです、そこでどういう使い方をしているのか 書いてもらわないと答えられません。 ところで、データファイルをわざわざ開く意味があるのでしょうか? ブック参照でできるのではありませんか? (kazu) ---- >[INA]さん割り込んでスミマセン。 いえいえ、とんでもございません。 私は、VLOOKUP を使ったことがないので助かります。 VBAだけなら、そこそこ回答できるのですが、数式が絡むと苦手でして・・ ひとまず、SSさんのお返事待ちですね。 (INA) ---- kazuさん INAさん有難うございます。 今日は会社の飲み会があって、今帰って着たところです。 私は前述しました通りマクロについては全く知りませんのでかなり”的ハズレ”な 質問をしているのではないかと後悔しております。 VLOOKUPなどの関数については以前から使用しているので大きな間違いは 犯してないとは思いますが、それほど自信はありません。 通常VLOOKUPのように他のファイルを参照するような関数が設定されている ファイルでは、そのファイルを開く場合に”このファイルは他への 自動リンクが設定されています、このBOOKを更新し他のBOOKの変更を更新しますか?” とかのメッセージが出てきますよね。 この時にVLOOKUPを使用している個所が少なければ”はい”を選択し、 他のBOOKの変更を更新させれば済むことなのですが、VLOOKUPを沢山 使用している場合などはパソコンがフリーズしてしまったかのように更新に 非常に時間がかかってしまします。 そこで、そういうことを避けるために取り合えず”いいえ”を選択しておいてから リンク先のBOOKを開きます。 そうすればフリーズすることなくVLOOKUPにより参照先のデータが即、読み取られます。 ”フリーズ”というのは適切な表現ではないかとは思いますが、 他のBOOKの参照を必要とする場合などでネットワーク内のファイルの場合には 特に時間がかかります。 同一のパソコン内のドライブであれば少しは、ましな感じがします。 長々と”カキコ”しましたが宜しくお願い致します。 (SS) ---- 本来こういうデータはデータベース化して、ネットワークに置いて専門家に... といっても始まらないので、 ブック参照のVLOOKUPが立ち上がりで待ちきれないほど遅いというのは 考えにくいのですが、どれくらいの大きさのテーブルなのでしょうか? (テーブルの行数、列数、VLOOKUP数) ネットワークで使うと遅いということですが、 サーバーが東京にあって大阪から使っているようなことはないでしょうか? それから[更新しますか]のメッセージは表示させないようにすることはできます。 (kazu) ---- kazuさん有難うございます。 テーブルの行数は6000行程度、列数は20程あります。 VLOOKUPでの参照は50箇所くらいあります。 ネットワークサーバーは社内にあり同一の建屋内ですので、 東京⇔大阪という訳ではありません。 (SS) ---- だいぶ遅くなってしまったので、見ていないかもしれませんが、 約3000件の株価データをサーバーに置いて調べました。 =VLOOKUP(A1,'\\2000serv-46z2bo\kazu\200401\20040129\[20040128.xls]20040128'!$B$1:$I$3144,2,FALSE) 一度、Windows2000が更新中こけましたが、WindowsXPでは特に問題なく 動いています。 たしかにこのへんがぎりぎりの限界かもしれませんネ。 ブック参照をやめて、 このサーバー側に置いている6000件のブックをVBA で読んでVLOOKUP の部分を 組めば作業は改善されるかもしれません。 (kazu) ---- kazuさん  有難うございます。 kazuさんの言われるように、サーバー側のデータをBookに取り込んでからvlookupで検索するようにしました。 大正解でした。 即読み込みが終了しました。 有難うございました。 今後とも宜しくお願い致します。  (SS)