- ベストアンサー
AccessとExcelの連携方法についての質問
- AccessとExcelを連携させる方法について質問です。
- Accessでボタンを押すとExcelの指定ファイルを印刷し、Excelは終了させずにAccessの作業を続けたい場合、どうすれば良いか教えてください。
- 具体的には、AccessのVBAコードで指定ファイルを開いて印刷し、その後はExcelを終了せずにAccessの作業を行いたいと考えています。
- みんなの回答 (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)
提示されたコードには変数の宣言などが抜けているので コンパイルエラーが出ます。また、プロセスが残り いろいろ困ることが起きます。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)
Application.Quit の代わりに、 ActiveWorkbook.close でExcelだけ閉じますが、どうでしょう?
補足
やってみましたが、 コンパイルエラー 変数が定義されていません となって、うまくいきませんでした。