エクセルVBAでどうしても解決できないオートメーションエラーがあるので相談させてください。
見積書を請求書に変換するというマクロを作っております
具体的にはこのような処理の流れになっています。
①同一フォルダ内の請求書.xlsmブックを開く
②請求書.xlsmブックの先頭に見積シートのコピーを作成
③タイトルやシート名を変更
この時、②の処理で「オートメーション エラーです。起動されたオブジェクトはクライアントから切断されました」というメッセージが表示されます。
デバッグボタンを押すと、こちらの部分がハイライトされます。
ThisWorkbook.Worksheets(estimateSheetName).copy Before:=Workbooks("請求書.xlsm").Worksheets(1)
また、エラーは毎回発生するのではなく発生したり、しなかったりで再現性がありません。
特段重い処理では無いように思いますし、コピーするシートも一般的な見積書で、大量のデータやシェイプを使用したものではないと思います。
なぜこのような事が起きるか分かる方いらっしゃいますでしょうか?
発生している問題・エラーメッセージ
オートメーション エラーです。起動されたオブジェクトはクライアントから切断されました
該当のソースコード
Sub duplicateEstimateToInvoice() '見積書シート名を取得' Dim estimateSheetName As String estimateSheetName = ThisWorkbook.ActiveSheet.Name ' 請求書ファイルを開く' Dim invoiceBookPath As String invoiceBookPath = ThisWorkbook.path & "\請求書.xlsm" Workbooks.Open invoiceBookPath '請求書ファイルの先頭に複製を作成' ThisWorkbook.Worksheets(estimateSheetName).copy Before:=Workbooks("請求書.xlsm").Worksheets(1) '以下タイトルやシート名を変更する処理' End Sub
試したこと
・onedriveの共有対象から外す
・請求書.xlsmを開いた際にworkbook_openイベントで自動で実行するマクロを登録していましたが、それを削除
・キャッシュを削除
・ブックの修復
・Application.ScreenUpdating = Falseをマクロの最初に記入
・ブックを新規作成して作り直す(ブックが破損している可能性があるので)
いずれも上手くいきませんでした・・・
補足情報(FW/ツールのバージョンなど)
windows10
Excel for microsoft 365
CPU intel10世代i5
メモリ16GB
回答1件
あなたの回答
tips
プレビュー