Suzuさま
hatenaさま
お世話になります。
ご親切にありがとうございます。
説明が下手で、また情報不足で申し訳ございません。
前提として、エクセルで入力した値を、アクセスで日報や週報などに集計(日計表や集計表印刷など)して処理する様に利用してます。
朝の最初の仕事で、前日に入力したエクセルの値をアクセスで日報や店舗毎の集計などに集計して出力してから、エクセルでその日の入力を始めるような業務の流れです。
その際に、VBAを利用してボタンひとつでアクセスを終了できて、入力用のエクセルが開けば便利だと思いまして、アクセルを終了する所までは次のコードで出来ました。
終了するVBAのコード
If MsgBox("終了してよいですか。", vbYesNo + vbDefaultButton1, "確認") = vbYes Then
Application.Quit
Exit Sub
End If
この続きに、エクセルを開くように前記のコードを書いてみました。
動作させてみましたら、画面が閉じて アクセスのマクロを編集する時の最初の画面 だけが開いて、他の画面がすべて閉じられた状態になって、アクセスを開いたり閉じたりすることも出来なくなりました。
マクロの画面には、自動的に form1 の名称のマクロがつくられた表示になりますが、Form_1 と言う名称のフォームは実際には無いフォームです。
なぜ閉じたり開いたり出来ないかと思って、エクスプローラーで見たら、「 ファイル名.laccdb 」 の様な鍵マークのついたファイルがあったので、削除しようとしたら、使用中で削除できないと表示されました。
こちらが、hatenaさまが教えてくださった 8月26日の更新でセキュリティ の関係でしょうか?
そして、Suzuさま が教えてくださった
引用:
Shell "Excel.exe ""C:\Folder\aaa.xlsx"""
を試してみましたら、アクセスが入力用のエクセルとリンクしているため、エラーの表示がされて「ファイル名.xlmsは編集中のためロックされています。」と表示されてしまいました。
試しに次ぎの様に書いて試しましたら、アクセルの画面が消えて何も表示されなくなりました。
If MsgBox("終了してよいですか。", vbYesNo + vbDefaultButton1, "確認") = vbYes Then
Application.Quit
Shell "Excel.exe ""C:\フォルダ名\フォルダ名\フォルダ名\ファイル名xlsm"""
Exit Sub
End If
もしかしてと思って、エクスプローラーでみたら、また「 ファイル名.laccdb 」 の様な鍵マークのついたファイルが残っていていました。
アクセルで、VBAを利用しないと、鍵マークのファイルが消えてアクセルがきれいに終了できます。
新規にアクセスのファイルを作って、Suzuさま が教えてくださった Shell "Excel.exe ""C:\フォルダ名\フォルダ名\フォルダ名\ファイル名.xlsm""" を試したら、無事にエクセルの開くことが出来ました。
素人の考えでお恥ずかしいのですが、アクセルを閉じてその直後にエクセルのファイルを開けば良いのかと思いますが、上記のアクセルを閉じるコードの後に追記したら動かなかったので悩んでます。
よい方法がございましたら、教えてください。
よろしくお願いいたします。