• 締切済み

VBA の Application.Run でエラー発生

独学で勉強したVBAなのですが、とても困っています。 AAA.xls BBB.xls CCC.xls というファイルがあるとします。 AAAを起動すると、BBBを起動して、 Application.Run "'BBB.xls'!TEST" で、BBBのTESTを実行するようにしています。 TESTを実行すると、 Workbooks.Open filename:=ActiveWorkbook.Path & "\CCC.xls", Password:="XXX", WriteResPassword:="XXX", ReadOnly:=True でCCCを起動して、CCCのシートの値をBBBにコピーしてくるようにしています。この一連の処理において、 「実行時エラー'2147352567(80020009)' 'Run'メソッドは失敗しました:'_Application'オブジェクト」 が発生します。 これらは共有サーバー上で動作させているのですが、 困ったことに、エラーが発生する人と、そうでない人がいます。 理由が全くわからず、非常に困っています。 教えていただけたらとても助かります。 何卒よろしくお願いいたします。

みんなの回答

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.1

>共有サーバー上で動作させている 違います。AAAやBBBが共有サーバに置いてあるのであって、動作は 各ローカルマシンで動いています。 AAAからBBBを開く時のパスが各ローカルマシンで違うのでは? 共有サーバを名前で扱うと、実アドレスに変換するための設定が 影響します。(DNSとかhostsとか)"\\192.168.0.1\~\BBB.xls"の ような絶対パス指定に変えてみたら、どうなるかですね。 勿論、BBBがCCCを扱う時のパスも同じように変更します。

uou0920
質問者

補足

早速の回答、大変ありがとうございます。 >共有サーバー上で動作させている 大変失礼いたしました(恥) 知らぬは一生の恥。教えていただきありがとうございす。 あまりに原因不明(自分的にですが)な上に 即直せってことになってしまったので、Application.Run をいったん削除して手動操作に切り替えてしまいました。 次の修正のタイミングで、上記の件試してみたいと思います! その後また報告orお礼を致します。 PS:新たな判明 使うPCによって、エラー発生する/しない だけではありませんでした。 同じPCでも、エラー発生する/しない があることがわかりました。 トホホです・・・

関連するQ&A

  • VBA 実行時エラーで、"プロパティまたはメソッド

    ・Sheet1(コード) Private Sub CommandButton1_Click() Call aaa End Sub ・Module1(コード) Sub aaa() Dim wb As Workbook Dim ws As Worksheet Workbooks.Open ("c:\test.xls") Set wb = Workbooks("test.xls") Set ws = wb.Worksheets("Sheet1") wb.ws.Range("A2").Value = "CCC" End Sub wb.ws.Range("A2").Value = "CCC"の部分で 以下の実行エラーが出ます。 ------------------------------------------------------------------------ 実行時エラー'438': オブジェクトは、このプロパティまたはメソッドをサポートしていません。 ------------------------------------------------------------------------ Set wb = Workbooks("test.xls") Set ws = wb.Worksheets("Sheet1") の部分で特にエラーも出ないので、オブジェクトの取得は成功していると 思うのですが、WorkSheetオブジェクトのwsからRangeメソッドを呼ぶことが できません。 動かない原因と対策を教えてください!!

  • VBAでエラーが出ます

    セルの値を変数に格納して、それをブック保存時に使いたいのですが上手くいきません。 Sub サンプルブック保存() Dim myfile As String myfile = workbooks("サンプル").Worksheets("sheet1").Cells(2, 9) workbooks.Add ActiveWorkbook.SaveAs Filename:="\\C:\フォルダ\" & myFile & ".xls" End Sub エラーメッセージは、 実行時エラー'1004': SaveAs'メソッドは失敗しました'_Workbook'オブジェクト と出ます。 非常に困ってます。 教えてくだされば幸いです。

  • VBA

    VBAでstrFILENAMEにaaa.xlsを代入したいのですがどうしたらいいのでしょうか? このままだと定義エラーになっていまします。 Dim wbk As Workbook Set wbk = Workbooks.Open(Filename:="C:\Documents and Settings\Administrator\デスクトップ\strFILENAME", ReadOnly:=True)

  • ハンドルされていない例外が発生?

    C++にて作成したアプリを終了すると0xC0000005エラーが発生します。 エラー箇所は AAA *aaa //AAAは外部クラス(グローバル) void BBB{ aaaa = new aaa; aaa->ccc();} void CCC{ aaa->ddd(); delete aaaa; } メイン関数にてBBB→CCCの順で数回読んでいます。 エラーの原因として何が考えられるでしょうか? 開発環境はWindowsXP VC++6.0です。 よろしくお願いします。

  • perlのエラー処理

    ライブラリ内部で発生したエラーをキャッチする方法がわかりません(>_<) ---------------------------------- #!/usr/bin/perl use XML::AAA; my $aaa = "bbb"; my $ccc = XML::AAA->new($aaa); ---------------------------------- こんなスクリプトを書いたとします。 XML::AAAが、newするときにXML::BBBを使っているとします。 引数が不正でXML::BBBでエラーが発生したときに どうやってそのエラーをキャッチしたらいいかわかりません。 eval{my $ccc = XML::AAA->new($aaa);} if($@){&error_handling;} とやってみても、うまくキャッチできません。 また、$aaaが正しい引数かどうかを確認するのは、ちょっと難しいので、やはり、エラーをキャッチする方向で考えたいです。 ほかにどのような方法があるか教えてください。。

  • エクセルVBAでのエラー

    おはようございます。 昨日ここでいろいろ教えていただき、300のエクセルファイルから特定の範囲のデータ抽出方法を書いてみたのですが、セルが多すぎて実行できません、というエラーがでてしまいます。 これはどのように解消すればよろしいのでしょうか? Sub Test() Dim FPath1 As String, FPath2 As String Dim FName As String, myBook As String Const startROW As Long = 14, lastROW As Long = 20 Const startCOL As Long = 8, lastCOL As Long = 10 Const shtNAME As String = "sheet1" Application.ScreenUpdating = False FPath1 = "D:\MR5567\" FPath2 = "D:\New Microsoft Excel Worksheet\" Workbooks.Add myBook = ActiveWorkbook.Name FName = Dir$(FPath1 & "*.xls") Do While FName <> "" Workbooks.Open Filename:=FPath1 & FName ActiveWorkbook.Sheets.Select Sheets(1).Activate Sheets.Copy After:=Workbooks(myBook).Sheets(Sheets.Count) Workbooks(FName).Activate Application.DisplayAlerts = False ActiveWorkbook.Close FName = Dir$ Loop ActiveWorkbook.SaveAs Filename:=FPath2 & "Renketsu.xls", FileFormat:=xlNormal ActiveWorkbook.Close Application.ScreenUpdating = True End Sub

  • エクセルVBA、他のファイルからのコピー

    BBA初心者です aaa.xlsのマクロで aaa.xls にbbb.csvのデータを貼り付けたいのですが Sub () Windows("bbb.csv").Activate…ここのbbbってところをセル参照にしたいのです ActiveCell.Range("A1:A10").Select Selection.Copy Windows("aaa.xls").Activate ActiveSheet.Paste End Sub 1つ上のセルにbbbと入力されていればbbb.csvのデータを 1つ上のセルにcccと入力されていればccc.csvのデータを 貼り付けれるようなマクロはどう書けばいいのでしょうか よろしくお願いします

  • Excel VBAの不思議な現象について

    Excel2003を使用しています。 下記にあるコードを実行すると稀に(50回に1回くらいの割合?)、違った動作が走ります。 この原因はなんでしょうか?また、解決策としてはコードをどのように修正したら良いでしょうか?? 【状況】 ・コードを記述しているブック…MENU.xls ・MENU.xlsにあるシート…「メニュー」「AAA」「BBB」「その他」 ※順番もこの通りです 【やりたい動作】 「メニュー」シートのセルの値をコピーして、「AAA」と「BBB」に貼り付ける。 「AAA」と「BBB」を新規ブックへコピーする。 新規ブックにさらに「あああ」と「いいい」というシートを追加する。 新規ブックを確定版.xlsという名前で保存する。 【コード】 ThisWorkbook.Worksheets("メニュー").Range("C1").Copy Worksheets(Array("AAA", "BBB")).Select Range("D9").PasteSpecial Paste:=xlPasteValues ActiveWindow.SelectedSheets.Copy Application.DisplayAlerts = False With ActiveWorkbook .Worksheets.Add(After:=Worksheets(Worksheets.Count)) _ .Name = "あああ" .Worksheets.Add(After:=Worksheets(Worksheets.Count)) _ .Name = "いいい" .SaveAs Filename:=ThisWorkbook.Path & "\" & "確定版.xls" End With Application.DisplayAlerts = True 【不思議な現象】 いつもは、このマクロを実行してエラーも出ず、思った通りの動作で終了します。 ですが、時々、    「AAA」と「BBB」を新規ブックへコピーする。 以降から動作がおかしくなります。 具体的には、 新規ブックに「あああ」と「いいい」が追加されず、MENU.xlsに「あああ」と「いいい」が追加されて、MENU.xlsが「確定版.xls」として保存されてしますのです。 (つまり、ActiveworkbookをMENUであると認識されてしまうようです。) そのため「AAA」と「BBB」を追加した新規ブックは「Book1.xls」として宙ぶらりんの状態です。 この原因は何でしょうか? 途中でエラーが出て止まってくれれば良いのですが、間違ったまま最後まで処理が行われてしまうので困っています。 しかも本当にごく稀にこの現象が起こるのです。 もしお分かりになる方がいらっしゃいましたら教えて下さい。 宜しくお願いします。

  • 【Excel】「リンクを更新する」のダイアログを表示させないようにするには

    教えて下さい! AAA.xlsとBBB.xlsというファイルがあります。 AAA.xlsを開くと自動的にBBB.xlsが開くようになっています。 BBB.xlsにはグラフがあり、AAA.xlsからデータを読んでいるため「リンクを更新しますか?」というダイアログが表示されてしまいます。 これを表示させないようにするにはどういう記述をしたらよろしいでしょうか? AAA.xlsを開く際にBBB.xlsも開くように、AAA.xlsに以下のように記述してあります。 ================================================================ Sub Auto_open() Workbooks.Open Filename:=ThisWorkbook.Path & ("\BBB.xls") Workbooks("AAA.xls").Worksheets("Sheet1").Activate End Sub ================================================================ その記述に付け加える形になると思うのですが。 宜しくお願い致します。

  • エクセルVBAで

    いつもお世話になります。 エクセルファイル”AAA”で Workbooks.Open ("C:\Documents and Settings\Owner\デスクトップ\BBB.xls") として、”BBB”というファイルを開き、”AAA”にデータを読取っているのですが、自分のPC以外でネットワークを介して別のPCで同じ事をすると”BBB”のファイルを開いてくれません。 何か良い方法があれば教えて頂けないでしょうか。

専門家に質問してみよう