
vbsで、フォルダ内にあるcsvファイル全てを開き、マクロを起動させたい。
こんにちは。
お世話になっております。
さて、最初はバッチでどうにかならないかと思っていましたが、下記vbsソースを見つけ、
早速チャレンジしたのですが、ファイルが開くところまではうまく行きますが、「マクロ Macro1がありません」というメッセージが出てしまい、マクロが実行されません。
手動でマクロを実行しようとするときに出てくるマクロ一覧には、PERSONAL.XLS:Macro1と、表示されております。
マクロの保存先をまちがえているのでしょうか?
また、あるフォルダのcsvファイル全てに対して1つのvbsキックで処理が行なわれるようにするには、どの様にすればいいでしょうか?
よろしくお願いします。
-----------------------------------------------------------------------
Dim obj
Set obj = WScript.CreateObject("Excel.Application")
obj.Visible = True
obj.Workbooks.Open "C:\Documents and Settings\Administrator\My Documents\001.xls"
obj.Application.Run "Macro1"
No.2ベストアンサー
- 回答日時:
>あるフォルダのcsvファイル全てに対して1つのvbsキックで処理が行なわれるようにするには、
VBSキックで処理とはなんでしょうか?何をするのですか?
私は、とても疑問に感じています。ご質問者さんは、ある程度VBAはご存知だと思います。それなのに、PERSONAL.XLS を呼び出すというのは、Excel(全バージョン)にとって、もっともセキュリティの甘い場所にアクセスすることですから、出来るなら、そのような方法は変えてほしいと思います。
DefaultFilePath (ふつうは、My Documentです)の一般ファイル(xls)にしたらどうですか?PERSONAL.XLSを狙うというのは、典型的なOfficeのウィルスの考え方です。そして、セキュリティをくぐり抜ける方法を教えてほしいというわけです。
最初から、Excelのマクロからしたらいかがですか?もしくは、Excelマクロを呼び出さずに、VBScript のスクリプトにExcelマクロを移植してしまえばよいです。もちろん、Excelのタイプライブラリを使う方法は出来るものと出来ないものがありますから、VBScript では、難しい部分はあります。
>マクロを有効にするかどうか聞いてくるだけで、マクロ自体は実行されません。どうしてでしょうか?
ダイレクトにマクロを呼び出しすれば、セキュリティが働きます。それを、外さないで動かす方法はありますが、それは、その後のマクロの内容によります。それ以前に、CSV 自体は、テキストファイルですから、Excelのマクロを使う必要があるのでしょうか。きつい言い方ですが、悪く思わないでください。この手の質問は多いのですが、ただ教えればよいというものではないからです。
No.3
- 回答日時:
手抜きせず,必要なブック(=マクロを持たせたブック)を開いてからマクロを実行してください。
obj.workbooks.open "c:………\PERSONAL.xls"
obj.application.run "PERSONAL.xls!Macro1"
No.1
- 回答日時:
誰が持ってるMacro1か,ちゃんと指定してやらないとエクセルに判りません。
obj.Application.Run "001.xls!Macro1"
この回答への補足
すみません。
お礼に、マクロの有効メッセージが出るだけ、と書きましたが、フルパスで指定している「PERSONAL.XLS」が見つかりません、というエラーMSGも隠れて出ておりました。
パス、ファイル名に間違いはいのですが。。。
以上、補足いたします。
回答のほう、ありがとうございました。
意味がわかりましたので、下記のようにしてみましたが、マクロを有効にするかどうか聞いてくるだけで、マクロ自体は実行されません。どうしてでしょうか?
すみませんが教えてください。
よろしくお願いします。
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"
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAを一度起動するとずっと出て...
-
エクセル終了時の保存確認メッ...
-
昨日まで動いていたエクセルの...
-
【マクロ】excelファイルを開く...
-
Excelマクロ ファイル名が変わ...
-
EXCEL マクロ クリップボードク...
-
エクセル2013vbaで、見えない名...
-
コピーしたファイルのマクロを...
-
VBA マクロ実行時エラー’1004Ra...
-
アクセスでファイルを開いたと...
-
Excelが勝手にシート移動してし...
-
【マクロ】エラーが発生⇒実行時...
-
Excel2010 PERSONAL.xlsbの挙動...
-
マクロを設定したのに、拡張子...
-
excelファイルに使われているVB...
-
エクセルマクロ実行中に別ファ...
-
CSVの再保存後の数値桁扱いにつ...
-
別のパソコンでエクセルのマク...
-
excelが別プロセスで起動してし...
-
個人用マクロブックにマクロを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで印刷する方法 エクセ...
-
VBAを一度起動するとずっと出て...
-
昨日まで動いていたエクセルの...
-
エクセル終了時の保存確認メッ...
-
excelファイルに使われているVB...
-
コピーしたファイルのマクロを...
-
別のパソコンでエクセルのマク...
-
Excelが勝手にシート移動してし...
-
【マクロ】宣言は、何のために...
-
Excelマクロ ファイル名が変わ...
-
【マクロ】エラーが発生⇒実行時...
-
VBA マクロ実行時エラー’1004Ra...
-
excelのマクロ実行でブロックさ...
-
エクセル2013vbaで、見えない名...
-
マクロを消すマクロは不可能?
-
エクセルマクロ実行中に別ファ...
-
EXCEL マクロ クリップボードク...
-
マクロを設定したのに、拡張子...
-
excelが別プロセスで起動してし...
-
アクセスでファイルを開いたと...
おすすめ情報