- 締切済み
エクセルのマクロについて質問です。
ファイル数が100個ぐらいあるのですが(ファイル名;asu1.lvm~asu100.lvm)、これを新しいエクセルファイルにデータを添付したいです。 lvmファイルを開いて、まずエクセルに関連づけて開きます。そこで、H1からH4とA1をそれぞれ、指定したエクセル(新規ではない)のA1からA4とA5へ貼付けます。次のファイル(asu2.lvm)をH1からH4とA1をそれぞれ、B1からB4とB5へ貼付けます。これをasu100.lvmまで繰り返します。FSOという機能を使ってファイルを選択出来るようにしたいです。 OSは、Windows Vista エクセルは2007です。XPで2003を使う事もあるので両方で動かせるようにしたいです。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- Wendy02
- ベストアンサー率57% (3570/6232)
>これを開く際はエクセルを使うようにあらかじめ設定しています。 こちらでも、いろいろ調べてみましたが、どうやら、それだけでは処理は不可能だと思います。こちらの思惑とは違いましたので、こちらでは、無理だと分かりました。 関連づけたものは、どうやら、Excel上で使う場合は、Active X コントロールになっているようですが、それを、外部からコントロールする方法が分かりません。 1回キリで、LabVIEWで開くということまでは、拡張子が関連づけられていれば、Windows XP以上なら、私でも開くことは可能です。しかし、100ファイル、つまり100回も開くことでしょうから、完了する前に、物理的メモリを使いきってしまうと思います。ループなど、繰り返すには、LabVIEW自体をコントロールしないと無理です。 以下は、関連情報です。両方とも、今回とは逆に、LabVIEWからの操作になっています。 ・LabVIEWでのActiveXの使用法のサンプルが見つからなかったのですが、何を参考にすればよいのでしょうか? http://digital.ni.com/public.nsf/allkb/A3A13C4C389C2EC786256F4C00267D0E ・Run Excel Macro from LabVIEW http://sine.ni.com/devzone/cda/epd/p/id/1906#1requirements lvm は、ファイルはテキストファイルですから、VBAでも、その中身は読めます。しかし、なぜ、FSO (FileSystemObject)を利用するのか、その理由は良く分かりませんし、もし、ファイル名の取得だけなら、Dir 関数を持たない場合に使うように思います。それを、LabVIEWで開ける方法と閉じる方法が分からなければ、その後が続けられません。 fn = Dir(mPath & "*.lvm") Do While fn <> "" '開いて、貼り付けて、閉じる ''*ここが分かりません。 fn = Dir() Loop もし、LabVIEWを使っている人なら分かるかもしれませんが、これ以上は、そのソフトウェアを詳しい人でないと無理かもしれません。ソフトの専用フォーラムでお聞きになったほうがよいかもしれません。 ご期待には沿えず、申し訳ありません。
- Wendy02
- ベストアンサー率57% (3570/6232)
FSOを使うか使わないかはどちらでもよいと思います。そういう方法を指定する前に、 (ファイル名;asu1.lvm~asu100.lvm) これは何なのですか? >lvmファイルを開いて、まずエクセルに関連づけて開きます。 どうやって開くのですか?拡張子検索すると、差分のバイナリファイルだと出てきます。それでは、それでは、Excelに貼り付けるなどということは無理だと思います。 まず、lvmファイルの実体を明らかにすることですね。
fsoを有効にしたいのならvbaのツール→参照設定→microsoft scripting runtime にチェック入れてください
補足
lvmファイルは、labviewというソフトを使っています。http://www.ni.com/labview/ja/ lvmファイルを開く際に通常は、開けないので開くソフトをエクセルに関連づけてから開いています。設定で、これを開く際はエクセルを使うようにあらかじめ設定しています。