
お世話になります。
PLC/TakebishiDeviceXPlorer/PC(ExcelVBA)で、生産設備のモニタリング&分析を行うべく作業を進めています。
その中で『メインBookから別インスタンスでモニタBookをマクロ有効で開く』に関し、ネットの情報を頼りにvbsで実現する事は出来ましたが、vbsで下記エラーが発生しています。
(呼出側/起動Open側共に、問題なく次の動作に入り正常に動作しています。)
▲発生エラー
:未知の実行時エラーです。/コード:800A9C68/ソース:MicrosoftVBScrip・・・
●メイン側呼出コード
'---引数
Dim arg_str10 As String '---Exle FullPathName
Dim arg_str20 As String '---Exle ModName
Dim arg_str21 As String '---Exle ProcName
temp1 = objMySheet.Range("D9") ’---起動するモニタBook保存先
temp2 = objMySheet.Range("D10") '---起動するBook名
arg_str10 = temp1 & "\" & temp2
arg_str20 = objMySheet.Range("D13")
arg_str21 = objMySheet.Range("D14")
vbsRslt = "開始": objMySheet.Range("D15") = vbsRslt
'---vbs起動
vbsRslt = Shell("WScript.exe """ & vbsFullPathName & """" _
& " " & arg_str10 & " " & arg_str20 & " " & arg_str21)
’---結果(実行OK_64[タスクID]5584)
objMySheet.Range("D15") = "実行OK_" & vbInformation & "[タスクID]" & vbsRslt
※マクロ直接起動です。BookOpenEventは使用していません。
■VBS
Option Explicit
DIM Prms
Set Prms = WScript.Arguments
DIM tgtExcelFullPName,tgtModule,tgtProc,tgtMacro
tgtExcelFullPName= Prms(0)
tgtModule=Prms(1)
tgtProc=Prms(2)
tgtMacro=tgtModule & "." & tgtProc
DIM objExcelApp,objWbk
Set objExcelApp= CreateObject("Excel.Application")
objExcelApp.EnableEvents=False
Set objWbk= objExcelApp.Workbooks.Open(tgtExcelFullPName,False,True)
objExcelApp.Visible = True
objExcelApp.Run"'" & objWbk.Name & "'!" & tgtMacro ←▲エラー発生行
objExcelApp.EnableEvents=false
Set objWbk=Nothing
Set objExcelApp=Nothing
今後も機能を追加し仕組みが大きくなって行く事から、将来的にこのエラーが原因となり
仕組みの再構築等の事態になる事があるのかを確認しておきたいです。
ネットで「800A9C68」を検索してみましたが、英文のみで・・・・
教えてください。
1)エラーの意味合いは?
2)発生の原因と対処法は?
No.2ベストアンサー
- 回答日時:
1) は、月次で、VBSから、VBAが実行できなかったというだけのエラーだと思います。
2)試しにこちら(○)に変えてみてください。
理屈は、マクロのセキュリティを騙すように、自分の配下から呼び出すという方法です。
'objExcelApp.Run"'" & objWbk.Name & "'!" & tgtMacro ←▲エラー発生行
objWbk.Application.Run tgtMacro '←○
他に問題があるのかどうかは、まだ見ていません。
早速の回答ありがとうございました。
2)objWbk.Application.Run tgtMacro '←○
objExcelApp.Run"'" & objWbk.Name & "'!" & tgtMacro ←×
『○』にてエラー無しに起動できました。
理屈に関しては??ですが
⇒もう少し勉強したく、参照先等有りましたら教えてください。
1)月次で、VBSから、VBAが実行できなかったというだけのエラーだと思います。
(1)「月次で、」は何でしょうか?
(2)VBSから別インスタンスのエクセルを開き、そのVBAコードは
実行できています、(但しVBSエラーが出る。)
「VBAが実行できなかった」とはちょっと違うかなと?
(800A9C68は、余計なお世話エラー?)
No.3
- 回答日時:
>(1)「月次で、」は何でしょうか?
要するに、VBA単独でしたら、すぐ分かる、「○○のためにマクロが実行できません」というエラーメッセージ付きのエラーも、VBS を通すと、その内容がなくなって、エラーコードだけになってしまうものではないか、と考えました。
>2)VBSから別インスタンスのエクセルを開き、そのVBAコードは
> 実行できています、(但しVBSエラーが出る。)◆
> 「VBAが実行できなかった」とはちょっと違うかなと?
しかし、これはあくまでも推理だけで、実際は、Excel側からは確認できない、VBS の Unknown Error だから証明のしようがありません。
1)で書いたものは、一例ですが、そのエラー[◆]は、本当は、VBSからのものではなく、Excelのマクロからのでもなく、Excel本体からの何らかのメッセージだと思ったのです。
最近、私の別の質問の回答の中で、私の公開したマクロに、Excelのセキュリティの警告がでると言われて、エラーコードは違いますが、800... と似たコードで、同類のエラーで悩まされました。私の通常のPCでは発生しません。このVBSのコードを試してみた時に、その類の警告がコードとなって現れたのではないか、と思いました。だから「実行できなかった」というように捉えました。実際はそうではなかったようですが。
もし、それが正しければ、objExcelApp.DisplayAlerts = False で抑え込めるはずではあるけれども、そんな無茶なことはできませんね。
それで、経験的なことですが、Excel VBAだけの特徴で、オートメーション・オブジェクトとしてインスタンスが生成された時に、標準モジュールとオブジェクトモジュール(ThisWorkbookモジュールなど)と分離してしまう現象があります。だから、一旦、そのマクロは、分離したものではなく、自分の配下であるとして実行してやらなくてはならない、そういうところにあるのではないか、と考えました。(*)
英語の掲示板をざっと見ましたが、結果的には解決していても、どうも解決の手順や理屈は分かりません。
また、私の記憶にある解決方法は、Run を使わないで、別にあったような気がしてなりません。記憶違いかもしれません。*
結果オーライだから、深くは追求するつもりはありませんが。
ありがとうございました。
自分にとっては、理屈についてはやはり難しですね
VBS/ブック/マクロ指定起動の
「結果オーライツールコード」として捉える事にします。
No.1
- 回答日時:
>メインBookから別インスタンスでモニタBookをマクロ有効で開く
「Excel から 別インスタンスで Excel を開く」ということは普通に出来ますけど、
何か不都合でもありましたか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
バッチファイルからVBA実行でエラー
Excel(エクセル)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
vbsからのExcelマクロ呼び出しの際に保存ダイアログが表示されてしまう
その他(プログラミング・Web制作)
-
-
4
VBSからエクセルのマクロを起動するがうまく動作しない
Excel(エクセル)
-
5
Application.Runエラー(1004)
Excel(エクセル)
-
6
メッセージボックスのOKボタンをVBAでクリックさせたい
Visual Basic(VBA)
-
7
バッチファイルファイル→VBS→エクセル マクロを有効にして起動
Excel(エクセル)
-
8
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
9
既に開いているエクセルを閉じるには?
その他(Microsoft Office)
-
10
VBS実行時エラー オブジェクトがありません 回避方法について
Visual Basic(VBA)
-
11
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
12
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
13
DATE型変数を初期化する方法
Visual Basic(VBA)
-
14
VBscriptが起動しない?
Microsoft ASP
-
15
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
-
16
VBSで変数の宣言はできないのですか?
Visual Basic(VBA)
-
17
VBA シートをコピーする際に Copyメソッドは失敗しましたのエラーが出てしまいます
Visual Basic(VBA)
-
18
VBScriptからEXCELのVBAコマンドを実行するには?
Visual Basic(VBA)
-
19
メッセージボックスを前面に表示させるには?
Visual Basic(VBA)
-
20
VBAマクロ実行時エラーの修正について
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel2019 非表示モジュール内...
-
VBA+VBSによる別インスタンスB...
-
ステートメントの末尾が不正です
-
「パラメータが無効のため、処...
-
"echo off"の動きをLinuxのシェ...
-
マクロが急に動かなくなった
-
Workbook_openでマクロが実行さ...
-
名前を一括削除するマクロ
-
UNIXデータ展開時のエラーメッ...
-
Apache2.4の起動でエラー
-
遠隔地にあるパソコンのオフィ...
-
UNIX~WINDOWS間での日本語ファ...
-
ゼロからのOS自作入門について
-
連絡先をあいうえお順にするに...
-
一点一葉とはどんな意味ですか?
-
ラベルの差込印刷で2ページ目以...
-
ワードかエクセルで、KOKU...
-
インデックスに印刷する方法
-
エクセル宛名ラベルが重複する
-
筆王
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel2019 非表示モジュール内...
-
VBA+VBSによる別インスタンスB...
-
"echo off"の動きをLinuxのシェ...
-
ステートメントの末尾が不正です
-
[ マクロ ] エラーになったり...
-
VBA オートメーションエラー(...
-
Linux再起動後のエラーメッセー...
-
「パラメータが無効のため、処...
-
Workbook_openでマクロが実行さ...
-
エクセルに埋め込んだPDFの実行...
-
Apache2.4の起動でエラー
-
PCのシャットダウン時の警告...
-
イベントプロパティに指定した...
-
遠隔地にあるパソコンのオフィ...
-
エラーログの意味ご存知でした...
-
UNIXデータ展開時のエラーメッ...
-
ゼロからのOS自作入門について
-
UNIX(Solaris)でのtarファイル...
-
名前を一括削除するマクロ
-
UNIX~WINDOWS間での日本語ファ...
おすすめ情報