質問: Nothing DoCmd.Echo True MsgBox "出力が完了しました。 ", vbInformation End Sub ``` 質問が長くなってしまうので、必要であれば詳細を追記させていただこうかと思います。 ### PC環境 | 動作する環境1 | 動作する環境2 | エラーの出る環境 | | --- | --- | --- | | 2015年購入 lenovo製 | 2019年2月購入 hp製 | 2019年2月購入 富士通製 | | Intel Core i3-6100 3.70GHz | Intel Core i5-8500 3.00GHz | Intel Core i3-8100 3.60GHz | | HDD 1TB | SSD 500GB | HDD 500GB | | Windows10 Pro 64bit | Windows10 Pro 64bit | Windows10 Pro 64bit | | Access Runtime 2013 32bit | Access Runtime 2013 32bit | Access Runtime 2013 32bit | | Excel 2016 32bit | Excel 2016 32bit OEM | Excel 2016 32bit OEM | 弊社システムの開発環境は、動作する環境2にAccess 2013をインストールしたものです。 ### 試したこと * エラーが特定の箇所で起きるため、その洗い出しを行う * `Form_Load`などのイベントに`Msgbox`を差し込んで、エラーの発生タイミングを確認 * 同時に購入した同じ型式のPCで試すと、結果は型式ごとで同じであることがわかった * ランタイムの再インストールをしたり、2013の64bitや2016に変えても改善はせず * 参照設定にExcel 16.0 Object Libraryを含む別のAccdbファイルは、どのPCでも正常に動作していた * エラーの出るPCにOffice Personal 2013をインストールしても結果は変わらず * NASにあったシステムを全てローカルに移してみるも結果は変わらず(3/8 追記) 同じWin10 & AccessRuntime2013 & Excel2016でもエラーの出ない環境があるから環境のせい? 他のシステムでExcelを使ってもエラーが出ないからシステムのせい? 原因がつかめない状態です。 ### 補足情報(FW/ツールのバージョンなど) システムは入力・集計用のフロントエンドと、データベース用のバックエンドの2つのファイルに分かれており、バックエンド上のテーブルをフロントエンドがリンクテーブルとして読み書きしている状態です。 フロントエンドは各PCのローカルに同一のものを配布しており、バックエンドは各PCが見られるNAS上に置いています。 (3/8 加筆修正) Visual Basic Editorのデバッグ→コンパイルは通っている状態です。 その他、何か状況の特定に必要な情報があれば、教えていただければと思います。 詳しい方のお力をお借りできますと幸いです。よろしくお願いいたします。
回答: ランタイムもoffice系のバージョンに合わせた方が良い気がします。 また、OSは64bit版ですので、ランタイムやエクセルも64bit版に合わせてみて下さい。 特に「Microsoft DAO 3.6 Object Library」が64/32のどちらになっているのか気になりますので。 関連して気になる情報。 ※正式なものではないので確かかどうかは分かりませんが、何かはあるのかもしれない。 Access VBA: 64bit でも 32bit でもDAOを動かす方法(検証中) > > Access2010 以降、DAOの標準ライブラリが "Microsoft Office 14.0 Access database engine Object Library" となりました。 > > > これにより、Access2010 で作成したDAOを利用したAccessVBAアプリケーションが、2010より古いバージョンで動かなくなることがあります。 > > > また、参照設定で「Microsoft Access 15.0 Object Library」の目的は何ですか? 特定のフォームで関係している参照設定は何でしょうか? 蛇足かもしれませんが、ご参考 AccessをRuntime版に移行する際の5つの注意点