質問させていただきます。
★行っていること
1.ACCESSで帳票作成
2.ACCESSフォームで出力(CopyFromRecordsetでクエリをExcelの任意のセルに出力)
※場合によりExcelファイルの数が違うためDo~loop処理を行っている
3.ACCESSからRunでExcelマクロを実行
4.任意の処理(製表、条件付き書式等)を実行
※最後の処理で上書き保存している
'''マクロ実行処理''''''''''' Set EE = CreateObject("Excel.Application") '本番はfalse EE.Visible = True EE.UserControl = False Set RS1 = DB.OpenRecordset("SELECT M_仕入先会社マスタ.仕入先コード,M_仕入先会社マスタ.会社名 FROM M_仕入先会社マスタ WHERE (((M_仕入先会社マスタ.[CHK])=-1));") Set wb = EE.Workbooks.Open("J:\シミュレート表\シミュレート表_2018\Macro.xlsm") Set ws = wb.Sheets("Sheet1") ws.Range("A1").CopyFromRecordset RS1 EE.Run "シミュ_Macro" wb.Close EE.Quit Set wb = Nothing Set EE = Nothing DoCmd.SetWarnings False DoCmd.OpenQuery ("Q_CHK_Clear") DoCmd.SetWarnings True MsgBox "END" End Sub
★困っていること
きちんとExcelマクロは実行され終了するのですが、処理が終わってACCESSに戻ってきたときにエラーが発生します。
『EE.Run "シミュ_Macro"』の部分です。
エラー内容はオートメーションエラー(実行時エラー440)です。
ネットなどで調べてみると、そのあとのCloseとQuitがないとExcelファイルが占有状態になると記載があったのですが。。。
ちなみにExcelのコードで最後に下記の処理を実施してACCESSに戻ろうとしています。
For Each wb In Workbooks If Not wb Is ThisWorkbook Then wb.Close SaveChanges:=True End If Next wb ThisWorkbook.Close SaveChanges:=True
宜しくお願い致します。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/02 02:09 編集
2018/07/02 03:25
2018/07/02 04:19
2018/07/02 05:37
2018/07/02 05:49