バッチファイルからVBA実行でエラー

このQ&Aのポイント
  • バッチファイルからエクセルのマクロを動かす際に発生するエラーについて解決方法を教えてください。
  • バッチファイルからVBAを実行すると、エラーウィンドウが表示されて処理が中断されます。エラーの解決方法を教えてください。
  • バッチファイルからエクセルのマクロを実行すると、未知の実行時エラーが発生してしまいます。エラーを解消する方法を教えてください。
回答を見る
  • ベストアンサー

バッチファイルからVBA実行でエラー

バッチファイルからエクセルのマクロを動かそうとしているのですが、 処理はきちんと動いて処理を行なうのに、エラーウィンドウが出力され ”未知実行時エラーです”(画像添付)となり困っています。 どうすれば、このエラーを無くせますでしょうか? 因みにバッチファイルは以下の通りです。 Dim obj Set obj = WScript.CreateObject("Excel.Application") obj.Visible = True obj.Workbooks.Open "C:\Documents and Settings\ne05576\My Documents\Datamove.xls" obj.Application.Run "FileMove" よろしくお願いします。

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

  • ベストアンサー
  • kybo
  • ベストアンサー率53% (349/647)
回答No.1

おそらく「FileMove」のマクロの記述に誤りがあるのだと思います。 FileMoveの記述を単純に以下にしてテストしたところ、こちらの環境では何の問題もなく動作しました。 Sub FileMove() MsgBox "OK" End Sub

kawa2400
質問者

お礼

ご回答ありがとうございました。 どうやらEND SUBの前に、ENDで処理を終わらせている部分があった為だったようです。 プログラムを直したら正常終了し、エラーウィンドウは出力されませんでした。

関連するQ&A

  • vbsで、フォルダ内にあるcsvファイル全てを開き、マクロを起動させた

    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"

  • EXCEL VBA 指定したファイルが存在しない場合メッセージボックスを表示させる

    EXCELのVBAでマクロを使ってファイルを開こうとしている際、指定したファイルが存在しなかった場合、普通はマクロのエラーが出て「ファイルが存在しません」となりますが、指定したファイルが存在しなかった場合には、メッセージボックスを表示させ、そこで処理を中止させるか、または、その無いファイルの処理は飛ばして次のファイルの処理を行う用にさせることはできるでしょうか? Sub test1() Workbooks.Open Filename:="C:\Documents and Settings\001.xls (001が存在しない場合メッセージボックスを出しマクロを中止するか次の002を開くか選ぶ) Workbooks.Open Filename:="C:\Documents and Settings\002.xls End sub

  • Excel ファイルに保存すると実行時エラーになる

    こんにちは。宮本と申します。VB6(SP5)で、 プログラミングをしております。 下記の様にプログラミングをしましたが、どうしても [実行時エラー’1004’ test_1.xlsにアクセスできません]と、なります。 c:\test.xls は、元々ある事を前提とし、c:\test_1.xlsに上書きをしたいのです。 宜しくお願い致します。 Dim wApp As Excel.Application Dim wExl As Object Set wApp = CreateObject("Excel.Application") Set wApp = CreateObject("Excel.Application") Set wExl = wApp.Workbooks.Open("c:\test.xls") wExl.Worksheets(1).Cells(1, 1).Value = 3000 wExl.Application.Visible = False wExl.Application.DisplayAlerts = False wExl.SaveAs "c:\test_1.xls" <---ここで、エラー

  • AccessからExcelマクロを実行したい

    Accessから既存のExcelファイルを開き、そのファイル内にある マクロを自動実行させたいと思っています。 Set obj = CreateObject("Excel.Application") obj.Visible = True Set Myobj = obj: Workbooks.Open ("エクセルファイル名(フルパス)") Myobj.Run マクロ名 と書いているのですが、Excelファイルを開くところまでしか動いてくれません。 マクロ名の書き方が悪いのかもしれませんが、VBAに不慣れなため どう直せばよいのかわかりません。 どうかよろしくお願いします。 ちなみに環境はWindows2000、Office2000です。

  • vbsでexcelファイルを印刷したいのですが、印刷部数の設定がどうし

    vbsでexcelファイルを印刷したいのですが、印刷部数の設定がどうしてもわかりません。 他で見つけたスクリプトですが…。 Set obj = CreateObject("Excel.Application") Set WSHShell = CreateObject("Wscript.Shell") Set objWkBk = obj.Workbooks.Open("D:\TEST.xlsx") obj.ActiveWindow.SelectedSheets.PrintOut() obj.quit() Set obj = Nothing ご教授お願いいたします。

  • バッチファイルからVBAに引数を渡したい

    お世話になります。 a.batというバッチファイルがあります。 このファイルを起動させた時にABC.xlsというEXCELが起動するようにしたいのですが、その際にバッチファイル側から"1303"という文字列をabc.xlsに引数として渡したいのです。 EXCEL側ではauto_open(a)で待ち受けて、このaに"1303"が入ってmsgで"1303"と表示させたいのですが、引数は省略出来ません、というエラーが出てしまいます。 どなたかやり方をご教授いただけませんでしょうか?よろしくお願い致します。 環境 WindowsXP SP3 Excel2003 ============================== バッチファイル側 ============================== @echo off echo バッチファイルを実行します。 ABC.xls "1303" echo 終了しました。 ============================== EXCEL VBA側 ============================== Sub auto_open(a As String) Msg a end sub

  • VBScript(WScript)のバッチファイル実行

    お世話になります。 VBScriptで困っています。 ご存知の方、ご教示願えますでしょうか。 Windowsでバッチファイルを実行したときに、DOS画面(コマンドプロンプト)が一瞬パッて表示されるかと思います。 現在開発中のシステムで、プログラムからバッチファイルを自動で実行する処理を入れております。 通常ならばバッチファイルを実行した場合、DOS画面が表示されてしまいますが DOS画面を出さないようにプログラムを組んでいます。 つまり、VBScriptからバッチファイルを実行しております。 以下、VBScriptのソースを記載します。 Set objShell = WScript.CreateObject("WScript.Shell") fcresult = objShell.Run("C:\abc.bat", 0, True) wscript.quit fcresult 上記のVBSを実行すると、必然的に「abc.bat」が実行されます。 しかし、現在僕が使っている環境ですとDOS画面が表示されません(←これがやりたいこと) しかし、お客さんの環境で同じ様にVBSからバッチファイルを実行すると 「C:\WINDOWS\System32\CScript.exe」という名前でDOS画面が起動されてしまいます。 周りの環境でもVBSからバッチをたたくような処理を行ってみましたが、DOS画面が起動されず。。。 正直、再現が難しいため大変困っております。 お客さんの環境では100%再現されます。 全くもって原因がつかめておりません。 Windowsのセキュリティの設定でしょうか!? ご存知の方いらっしゃいましたら、知恵をお貸しください。 よろしくお願いいたします。

  • VBA 他のPCでも使いたい

    エクセルVBA初心者です。 Workbooks.Open Filename: についてですが 「C:\Documents and Settings\たぬき\デスクトップ\どんぐり.xls」 を開くプログラムは 「C:\Documents and Settings\きつね\デスクトップ\どんぐり.xls」 を開きません。 例えば どんぐりエクセルのセルA1にPC名を代入して、それを利用して ファイルを開く方法とか ファイルの場所をファイル名から返して開く方法があれば教えて下さい。 仕事柄必要となっております。 分かり易くよろしくお願い致します。

  • バッチファイル作成について

    いつも参考にさせております。 バッチファイルで指定したディレクトリとそのディレクトリに含まれるサブディレクトリやファイルを全て削除したいと思っております。 例えば… 削除したいフォルダ:binフォルダ、objフォルダ フォルダ構成:C:\Documents and Settings\Kumagai\My Documents\Visual Studio 2005\Projects\WindowsApplication1 WindowsApplication1の直下にサブディレクトリが何個かありその直下にそれぞれbinフォルダ、objフォルダが存在します。 サブディレクトリが10個の場合binフォルダ、objフォルダもそれぞれ10個あるとします。 なおサブディレクトリの数は可変です。 この時、binフォルダとobjフォルダを一遍に削除するにはどのようにバッチファイルに記述すればよろしいのでしょうか? よろしければ教えてください。 環境はWindowXPですが、Vistaにも対応できるとなおうれしいです。

  • Accessからバッチファイルを実行したい

    accessのVBAで、フォルダ内にあるバッチファイルを実行したいのですが、 このサイトを参考につくってみたのですが、うまくいきません。 http://blog.s21g.com/articles/1202 「実行時エラー-2147024894 Runメソッドは失敗しました。'IWshShell3'オブジェクト」 とでます。 どうしたらいいか教えてください。。。 ちなみに、そのバッチは単純にCSVを他の格納先から、ダウンロードするだけの単純なバッチです。 ------------- Private Sub バッチ実行_Click() Dim strShellCommand As String Dim objWSH As Object strShellCommand = "\\~省略~類¥DL_BOPE.bat" ' バッチのあるパスとバッチファイルの名前を入れています Set objWSH = CreateObject("WScript.Shell") objWSH.Run strShellCommand, vbNormalFocus, True ' 第3引数がTrueなら、同期実行 Set objWSH = Nothing End Sub

専門家に質問してみよう