ACCESSからデータを起こし、Excelマクロと連携し製表するまでの処理を行っています。
ACCESSのコード Private Sub Export_Click() Dim RS1 As Recordset, RS2 As Recordset Dim RR As Integer 'ROW Dim CC As Integer 'Cell Dim EE As Object Dim wb As Object Dim ws As Object Dim i As Integer Dim idx1 As Integer, idx2 As Integer Dim CNT1 As Integer, CNT2 As Integer Dim Q_N As String '会社名 Dim LCNT1, LCNT2 Dim GCNT1, GCNT2 Dim RA, RB Dim YMD Dim PP As String Dim MM Dim myQuery Dim QQ Set DB = CurrentDb() For idx1 = 1 To 21 省略(選択した取引先の処理を繰り返しています) Next ’RS1でセットした内容をExcelにはきだします Do Until RS1.EOF Set EE = CreateObject("Excel.Application") '本番はfalse EE.Visible = False With EE .ScreenUpdating = True Set wb = .Workbooks.Add Set ws = wb.Sheets("Sheet1") End With //省略// With EE wb.SaveAs "J:\シミュレート表_2018\" & Q_N & ".xlsx" wb.Close .Quit 'Excel終了 Set EE = Nothing '参照開放 Set wb = Nothing '参照開放 Set ws = Nothing '参照開放 Set RS2 = Nothing '参照開放 End With RS1.MoveNext Loop //マクロ実行処理// Set EE = CreateObject("Excel.Application") EE.Visible = False EE.UserControl = False ’同じフォルダに『Macro』というファイルをセットし、そこから実行しています Set wb = EE.Workbooks.Open("J:\シミュレート表_2018\Macro.xlsm") Set ws = wb.Sheets("Sheet1") ’複数の仕入先を処理することがあるため、A1列に会社名をセットし、Do~Loop処理を行います EE.Run "シミュ_Macro" ↓追記 EE.Application.DisplayAlarts = False EE.Quit Set wb = Nothing Set EE = Nothing MsgBox "END" End Sub
Excelマクロ Dim LCNT As Long Dim LCNT1 As Long Dim LCNT2 As Long Dim LCNT3 As Long Dim LCNT4 As Long Dim M_NAME Dim F_NAME Dim HIRAITA_F As String Dim IDX1 As Integer Dim RA, RB, RC Dim YMD Dim WS As Object Dim WN(3) As String Dim Bar Dim PT Dim MM Dim NENGETU As String Dim i As Integer Dim wb As Workbook Do Workbooks(M_NAME).Activate l_cnt = l_cnt + 1 MM = Range("B" & l_cnt) If MM = "" Then Exit Do End If LCNT1 = 1 Workbooks(M_NAME).Activate //省略// 製表処理しています。 loop '閉じるときにAB列の値を消す Range("A1:B21").Select Selection.ClearContents ’開いているExcelを保存して閉じる For Each wb In Workbooks If Not wb Is ThisWorkbook Then wb.Close SaveChanges:=True End If Next wb ’Excelファイル『Macro』を閉じる ThisWorkbook.Save
ここまでの処理を、teratailで質問させていただき何とか作成することが出来ました。
ここで困っていることはきちんと任意の選択した仕入先のファイルが作成され、製表を出来てきちんと保存されているのですが、
さて確認してみようと思うと、なぜか作成されたファイルだけ起動しているのに『Macro』ファイルも一緒に立ち上がってしまいます。
そしてACCESSでもう一度処理を行おうとするとずっと実行中(フリーズ?)した状態になってしまします。
処理が終わって『END』が表示されるようにしたので処理が終わった後にタスクマネジャーで確認したところ、Excelは起動していませんでした。
Excel『Macro』がきちんと終了できていないということでしょうか??
ご教示お願い致します。
回答3件
あなたの回答
tips
プレビュー