hatena
hatena
2021/12/10 (金) 21:00:37
このコードを実行すると、
どのコードですか。
Excel_Close() のことですか。
これは、クラスモジュール内に記述しているのですか。
だとしたら、ex変数はモジュールレベルで宣言する必要があります。
Option Compare Database
'プロパティ設定
Public QryName As String '開くクエリ名の設定
Public SaveBookName As String '保存するブック名の設定
'オブジェクト変数
Dim QryBook As Excel.Workbook
Dim ex As Excel.Application 'ここで宣言
Public Sub ToExcel()
' Dim ex As Excel.Application これは削除
Set ex = CreateObject("excel.Application")
ex.Visible = True
DoCmd.OpenQuery QryName, , acReadOnly
DoCmd.RunCommand acCmdOutputToExcel
DoCmd.RunCommand acCmdClose
If SaveBookName <> "" Then
ex.ActiveWorkbook.SaveAs SaveBookName
Else
MsgBox "保存するブック名をSaveBookNameプロパティで設定してください"
End If
' Set ex = Nothing これも削除
End Sub
Public Sub Excel_Close()
If ex Is Nothing Then Exit Sub 'これを追加
'excelを終了する
ex.Quit
Set QryBook = Nothing
Set ex = Nothing
End Sub
通報 ...