- ベストアンサー
アクセスからエクセルのプロシージャーを実行する際のエラー
- アクセスからエクセルのプロシージャーを実行する際にエラーが発生しています。
- エクセルファイルのパスとプロシージャ名、アクセスのイベントなどを設定していますが、実行時エラー1004が発生します。
- エクセルファイルが開けなくなる問題や回復の表示も発生しています。オフィス2007です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 >xlApp.Visible = True >xlApp.Run "'" & MyFileName & "'!" & "test" >にしたら、全面にmsgboxが表示されました どうもすみません、気が付かなくて! もともと、Excel側がエラーを出していたので、いくつかのトラブルを想定しながら、今回の回答までに来たので、そこまでは気が回りませんでした。 私は、Win7 で試してダメだった後に、XPで試して、MsgBox だけ出るので、そのつもりでいたのでいたのです。
その他の回答 (1)
- WindFaller
- ベストアンサー率57% (465/803)
こんにちは。 >MyFileName = "C:\Users\User\Desktop\a.xlsm" >res = App.Application.Run(MyFileName & "!" & "test") これをセットでみると、 App.Application.Run("'" & MyFileName & "'!" & "test") とファイル名がついている場合は、「'」で括るはずです……。 Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim MyFileName As String ' Dim res As Variant 'Instance 生成 Set xlApp = New Excel.Application MyFileName = "C:\Users\User\Desktop\a.xlsm" Set xlBook = xlApp.Workbooks.Open(MyFileName) xlApp.Run "'" & MyFileName & "'!" & "test" xlBook.Close False xlApp.Quit Set xlApp = Nothing End Sub リンク先は、もう10年近く前で、環境が違いますから、同じようにいかないと思います。 根本的な解決にはないかもしれません。まだ、分からない部分があります。 こちらでは、MsgBox は、前面に出て来ませんでした。この程度でも、Windowを探して、それを最前面に持ってくるというコードを付けるのは、ちょっと大げさすぎます。 こちらは、Windows 7 ですが、同じような現象が得られました。OSが、XPでしたら、このコードで上手く通るはずです。
お礼
当方もwin7です。 ファイル名は‘で括るべきなのですね。以後そうします。 頂いたコードで実行してみたところうまくできました!ありがとうございました。 こちらでもMsgBox は前面に出て来ませんでした。
補足
ちなみに xlApp.Visible = True xlApp.Run "'" & MyFileName & "'!" & "test" にしたら、全面にmsgboxが表示されました!
お礼
いえいえ、とんでもないです。大変助かりました。ありがとうございました。