アクセスからエクセルのプロシージャーを実行する際のエラーです。
おはようございます。長文ですがお許しください。
http://www.geocities.jp/cbc_vbnet/tips/excll.html(03.プロシージャの作成)
を参考にアクセスからエクセルのプロシージャーを実行させてるのですがエラーになります。
エクセルファイルのパス→C:\Users\User\Desktop\a.xlsm
エクセルファイルに入っているプロシージャ→test()
*********************エクセルの標準モジュール*********************
Sub test()
MsgBox ""
End Sub
*********************アクセスのイベント*********************
Private Sub 更新_Click()
Dim App As Excel.Application ’参照設定済み
Dim MyFileName As String
Dim res As Variant
MyFileName = "C:\Users\User\Desktop\a.xlsm"
Set App = Excel.Application
res = App.Application.Run(MyFileName & "!" & "test")
End Sub
このアクセスのイベントを実行すると、
「実行時エラー1004
マクロ'C:\Users\User\Desktop\a.xlsm!test'を実行できません。
このブックでマクロが使用できないか、また全てのマクロが無効になっている可能性があります。」
となります。
エクセルのマクロの設定は、「全てのマクロを有効にする」にしてあります。
a.xlsmはダブルクリックすれば普通に開けるし、testも問題なく実行できます。
そして、このアクセスのイベントを実行した後は、エクセルファイルが開けなくなります。
一瞬開くんですが、すぐ閉じてしまいます。
タスクマネージャーのプロセスからエクセルのアプリケーションを強制終了させると
再度開けるようになりますが、画像のように変なドキュメントの回復が出ます。
とりあえず、エクセルが開けなくなることは置いといて、
アクセスからエクセルのプロシージャーを実行する方法を教えてください。
当方オフィス2007です。ご回答よろしくお願いします。
No.2ベストアンサー
- 回答日時:
こんばんは。
>xlApp.Visible = True
>xlApp.Run "'" & MyFileName & "'!" & "test"
>にしたら、全面にmsgboxが表示されました
どうもすみません、気が付かなくて!
もともと、Excel側がエラーを出していたので、いくつかのトラブルを想定しながら、今回の回答までに来たので、そこまでは気が回りませんでした。
私は、Win7 で試してダメだった後に、XPで試して、MsgBox だけ出るので、そのつもりでいたのでいたのです。
No.1
- 回答日時:
こんにちは。
>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でしたら、このコードで上手く通るはずです。
この回答への補足
ちなみに
xlApp.Visible = True
xlApp.Run "'" & MyFileName & "'!" & "test"
にしたら、全面にmsgboxが表示されました!
当方もwin7です。
ファイル名は‘で括るべきなのですね。以後そうします。
頂いたコードで実行してみたところうまくできました!ありがとうございました。
こちらでもMsgBox は前面に出て来ませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルのオートフィルターのしぼりをクリアーしたい 2 2022/12/24 08:36
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Visual Basic(VBA) パーソナルXLSBのfuctionを呼び出すと「Functionが定義されていません」のエラーになる 2 2022/08/22 22:51
- Excel(エクセル) 【VBAファイル移動】2つのマクロを順に実行。1つ目のマクロが実行不可⇒2つ目が実行不可となる件 2 2022/07/29 12:17
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/04 12:47
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Excel(エクセル) 【マクロ】エラーが発生⇒実行時エラー58既に同名のファイルが存在 5 2022/08/31 10:03
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/10 11:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ファイルのアクセス回数について
-
エクセルのプロパティーでセキ...
-
ExcelブックをGoogleスプレッド...
-
Wordで差込印刷した後に別々の...
-
エクセルファイル名に更新日時...
-
サブフォルダから部分一致のエ...
-
エクセル UserForm 呼び出しで...
-
実行時エラー52
-
エクセルでcsvファイルを開いて...
-
vbaでボタンをクリックして上書...
-
マクロ実行後、表示がおかしくなる
-
Xlms とはなんでしょうか?
-
複数のexcelのファイルを一括で...
-
【マクロ】webアドレスにて指定...
-
Excel csv保存 列数が異なる場...
-
excelのマクロでファイル一覧取...
-
指定フォルダ内のファイルオー...
-
For~Nextルーチンで最初の1回...
-
【Excel VBA】ファイルを保存し...
-
EXCEL 検索時の設定
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイルのアクセス回数について
-
エクセルのプロパティーでセキ...
-
ExcelブックをGoogleスプレッド...
-
Wordで差込印刷した後に別々の...
-
Excel csv保存 列数が異なる場...
-
エクセルファイル名に更新日時...
-
エクセル UserForm 呼び出しで...
-
サブフォルダから部分一致のエ...
-
実行時エラー52
-
マクロ実行後、表示がおかしくなる
-
エクセルでcsvファイルを開いて...
-
VBAでマクロを使って、マクロ無...
-
複数のexcelのファイルを一括で...
-
PowerPoint 2002でファイル名を...
-
エクセルのマクロで行と列の削...
-
大量のCSVファイルをExcel形式...
-
EXCEL 検索時の設定
-
For~Nextルーチンで最初の1回...
-
処理速度にムラがあり過ぎる
-
エクセルで、フィルタかけたま...
おすすめ情報