• ベストアンサー

エクセルを終了させたい。

Set rs =VB_ado.Execute(sql) Set exl = CreateObject("Excel.Sheet") rs.Close exl.Sheets(1).Name = Mid(fnm1, 1, 6) exl.Application.Visible = True exl.Windows.Arrange ArrangeStyle:=1 exl.saveas fnm  (1)質問 VB_ado.Close (1)saveasするときに上書きメッセージを表示したくない。 (2)EXCELのWindowsを表示させたくない。または、表示したEXCELを終了させたい。

質問者が選んだベストアンサー

  • ベストアンサー
  • sam_inoue
  • ベストアンサー率47% (27/57)
回答No.1

> Set exl = CreateObject("Excel.Sheet") この記述は使ったことがありませんが、 Excelをハンドリングするなら、 Application > Workbook > Worksheet > Range という関係を守った方が良いと思います。 この場合は、最初に Set exl = CreateObject("Excel.Application") としておけば、 Set wbk = exl.Workbooks.Add wbk.Worksheets(1).Name = Mid(fnm1, 1, 6) exl.DisplayAlerts = False wbk.saveas fnm wbk.Close False exl.DisplayAlerts = True exl.Quit で保存までウィンドウ表示させずに進められると思います。

その他の回答 (1)

  • xyz0108f
  • ベストアンサー率39% (80/202)
回答No.2

こんにちは。 私がいつも行っている方法がちょっと似ているので、参考になれば…と思います。 ============================================ 変数定義 ============================================ Public Excel_Sheet As Object 'Excelシート Public xlApp As New Excel.Application public NewXlsName As String 'Openするエクセルファイル名 Set xlApp = CreateObject("Excel.Application") Set Excel_Sheet = xlApp.Workbooks.Open(NewXlsName) Excel_Sheet.Application.Visible = True Excel_Sheet.Parent.Windows(1).Visible = True Excel_Sheet.Sheets(1).Activate == 以下Excelでの処理等 == 'Excelシートの保存 Excel_Sheet.Save 'Excelの解放 Set Excel_Sheet = Nothing xlApp.Quit Set xlApp = Nothing というカンジです。 「Excelシートの保存」という方法でやれば確認メッセージは出ませんでした。 また、「Excelの解放」というところの「xlApp.Quit」でExcelを終了できます。 その後はNothingできちんと解放してあげればプロセス部分で動いてしまっているということも防げます。 また、Excelを表示させたくない場合は「Application.Visivle=False」にすればできますよ。これでバックグラウンド上で動作してくれます。 参考になれば…。

akaricyan
質問者

お礼

ありがとうございました。よくわかりました。

関連するQ&A