• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Access、Excel ともに2003 を使用しています。)

AccessとExcelの連携方法についての質問

このQ&Aのポイント
  • AccessとExcelを連携させる方法について質問です。
  • Accessでボタンを押すとExcelの指定ファイルを印刷し、Excelは終了させずにAccessの作業を続けたい場合、どうすれば良いか教えてください。
  • 具体的には、AccessのVBAコードで指定ファイルを開いて印刷し、その後はExcelを終了せずにAccessの作業を行いたいと考えています。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

参考になれば Private Sub コマンド3_Click() MsgBox CurrentProject.Path strfile = CurrentProject.Path & "\XXXX.xls" Set Appexcel = CreateObject("Excel.Application") Set wb = Appexcel.Workbooks.Open(strfile) Appexcel.Visible = False 'Appexcel.Visible = True wb.Sheets("Sheet1").range("A1:C10").PrintOut wb.Close Appexcel.Quit End Sub これで印刷もし、エクセルで上記を開くと普通に開きました。 wb.Closeを入れていないで、テストで実行した時期があったのでタスクマネジャーでエクセルを終了し やってみると「ファイルは編集のためロックされています」が出なくなった。

その他の回答 (2)

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.2

提示されたコードには変数の宣言などが抜けているので コンパイルエラーが出ます。また、プロセスが残り いろいろ困ることが起きます。Excelが起動されていない 状態でタスクマネージャを起動し、Excel EXE が タスクマネージャのタスクにプロセスに表示されていないか 確認してください。表示されていたらExcel EXE を選択し プロセスを終了してください。 また、コード表のツールから参照設定を見て、 Microsoft Excel xx Object Library にチェックが入っているか確認してください。xx は数字です。 一般的には以下のような感じでExcelファイルにアクセスして 作業をします。 Private Sub コマンド1_Click() Dim objExcel As Excel.Application Dim wkb As Excel.Workbook Dim wks As Excel.Worksheet Set objExcel = CreateObject("Excel.Application") Set wkb = objExcel.Workbooks.Open(Filename:=CurrentProject.Path & "\●●.xls") objExcel.ActiveWorkbook.Sheets("Sheet1").Name = "Sheet1" 'ここに作業目的のコードを入れる '以下はオブジェクトの破棄 wkb.Save wkb.Close Set wkb = Nothing Set wks = Nothing End Sub

  • szk9998
  • ベストアンサー率45% (1026/2241)
回答No.1

Application.Quit の代わりに、 ActiveWorkbook.close でExcelだけ閉じますが、どうでしょう?

Star-X
質問者

補足

やってみましたが、  コンパイルエラー  変数が定義されていません となって、うまくいきませんでした。