- ベストアンサー
vbsでフォルダ内のcsvファイル全てを開く方法
- vbsでフォルダ内にあるcsvファイル全てを開く方法とマクロの起動方法について質問です。
- vbsでフォルダ内にあるcsvファイル全てを開き、マクロを実行したいですが、マクロが見つからずエラーメッセージが表示されます。
- マクロの保存場所が間違っているのかどうかと、フォルダ内の全てのcsvファイルに対して一括で処理する方法について教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>あるフォルダのcsvファイル全てに対して1つのvbsキックで処理が行なわれるようにするには、 VBSキックで処理とはなんでしょうか?何をするのですか? 私は、とても疑問に感じています。ご質問者さんは、ある程度VBAはご存知だと思います。それなのに、PERSONAL.XLS を呼び出すというのは、Excel(全バージョン)にとって、もっともセキュリティの甘い場所にアクセスすることですから、出来るなら、そのような方法は変えてほしいと思います。 DefaultFilePath (ふつうは、My Documentです)の一般ファイル(xls)にしたらどうですか?PERSONAL.XLSを狙うというのは、典型的なOfficeのウィルスの考え方です。そして、セキュリティをくぐり抜ける方法を教えてほしいというわけです。 最初から、Excelのマクロからしたらいかがですか?もしくは、Excelマクロを呼び出さずに、VBScript のスクリプトにExcelマクロを移植してしまえばよいです。もちろん、Excelのタイプライブラリを使う方法は出来るものと出来ないものがありますから、VBScript では、難しい部分はあります。 >マクロを有効にするかどうか聞いてくるだけで、マクロ自体は実行されません。どうしてでしょうか? ダイレクトにマクロを呼び出しすれば、セキュリティが働きます。それを、外さないで動かす方法はありますが、それは、その後のマクロの内容によります。それ以前に、CSV 自体は、テキストファイルですから、Excelのマクロを使う必要があるのでしょうか。きつい言い方ですが、悪く思わないでください。この手の質問は多いのですが、ただ教えればよいというものではないからです。
その他の回答 (2)
- keithin
- ベストアンサー率66% (5278/7941)
手抜きせず,必要なブック(=マクロを持たせたブック)を開いてからマクロを実行してください。 obj.workbooks.open "c:………\PERSONAL.xls" obj.application.run "PERSONAL.xls!Macro1"
お礼
お返事遅れました。 私の環境では、なぜかPersonal.xlsが開くことができませんでした。 ありがとうございました。
- keithin
- ベストアンサー率66% (5278/7941)
誰が持ってるMacro1か,ちゃんと指定してやらないとエクセルに判りません。 obj.Application.Run "001.xls!Macro1"
お礼
回答のほう、ありがとうございました。 意味がわかりましたので、下記のようにしてみましたが、マクロを有効にするかどうか聞いてくるだけで、マクロ自体は実行されません。どうしてでしょうか? すみませんが教えてください。 よろしくお願いします。 Dim obj Set obj = WScript.CreateObject("Excel.Application") obj.Visible = True obj.Workbooks.Open "C:\Documents and Settings\XXXXXX\デスクトップ\ABC.csv" obj.Application.Run "C:\Documents and Settings\XXXXXX\Application Data\Microsoft\Excel\XLSTART\PERSONAL.XLS!Macro1"
補足
すみません。 お礼に、マクロの有効メッセージが出るだけ、と書きましたが、フルパスで指定している「PERSONAL.XLS」が見つかりません、というエラーMSGも隠れて出ておりました。 パス、ファイル名に間違いはいのですが。。。 以上、補足いたします。
お礼
お返事遅れました。ありがとうございました。