質問するログイン新規登録

質問編集履歴

3

コード記載ミスの修正

2020/09/11 14:08

投稿

bktclvy
bktclvy

スコア63

title CHANGED
File without changes
body CHANGED
@@ -33,7 +33,7 @@
33
33
  ' 請求書ファイルを開く'
34
34
  Dim invoiceBookPath As String
35
35
  invoiceBookPath = ThisWorkbook.path & "\請求書.xlsm"
36
- Workbooks.Open invoiceFilePath
36
+ Workbooks.Open invoiceBookPath
37
37
 
38
38
  '請求書ファイルの先頭に複製を作成'
39
39
  ThisWorkbook.Worksheets(estimateSheetName).copy Before:=Workbooks("請求書.xlsm").Worksheets(1)

2

不要なコード削除

2020/09/11 14:08

投稿

bktclvy
bktclvy

スコア63

title CHANGED
File without changes
body CHANGED
@@ -54,25 +54,7 @@
54
54
 
55
55
  いずれも上手くいきませんでした・・・
56
56
 
57
- 以下コード
58
- Sub duplicateEstimateToInvoice()
59
- '見積書シート名を取得'
60
- Dim estimateSheetName As String
61
- estimateSheetName = ThisWorkbook.ActiveSheet.Name
62
57
 
63
- ' 請求書ファイルを開く'
64
- Dim invoiceBookPath As String
65
- invoiceBookPath = ThisWorkbook.path & "\請求書.xlsm"
66
- Workbooks.Open invoiceBookPath
67
-
68
- '請求書ファイルの先頭に複製を作成'
69
- ThisWorkbook.Worksheets(estimateSheetName).copy Before:=Workbooks("請求書.xlsm").Worksheets(1)
70
-
71
- '以下タイトルやシート名を変更する処理'
72
-
73
- End Sub
74
-
75
-
76
58
  ### 補足情報(FW/ツールのバージョンなど)
77
59
 
78
60
  windows10

1

書式の改善、コードの記載ミス修正

2020/09/11 13:57

投稿

bktclvy
bktclvy

スコア63

title CHANGED
File without changes
body CHANGED
@@ -1,44 +1,50 @@
1
+ ### エクセルVBAでどうしても解決できないオートメーションエラーがあるので相談させてください。
1
- ### ヘディングのテキスト### 前提・実現したいこ
2
+ 見積書を請求書に変換するいうマクロを作っております
3
+ 具体的にはこのような処理の流れになっています。
2
4
 
3
- ここに質問の詳し書いてください。
5
+ ①同一フォルダの請求書.xlsmブック
4
- (例)PHP(CakePHP)で●●なシステムを作っています。
5
- ■■な機能を実装中以下エラメッセージが発生しました。
6
+ ②請求書.xlsmブックの先頭見積シートコピを作成
7
+ ③タイトルやシート名を変更
6
8
 
9
+ この時、②の処理で「オートメーション エラーです。起動されたオブジェクトはクライアントから切断されました」というメッセージが表示されます。
10
+
11
+ デバッグボタンを押すと、こちらの部分がハイライトされます。
12
+ ThisWorkbook.Worksheets(estimateSheetName).copy Before:=Workbooks("請求書.xlsm").Worksheets(1)
13
+
14
+ また、エラーは毎回発生するのではなく発生したり、しなかったりで再現性がありません。
15
+
16
+ 特段重い処理では無いように思いますし、コピーするシートも一般的な見積書で、大量のデータやシェイプを使用したものではないと思います。
17
+ なぜこのような事が起きるか分かる方いらっしゃいますでしょうか?
18
+
7
19
  ### 発生している問題・エラーメッセージ
8
20
 
9
21
  ```
10
- エラーメッセージ
22
+ メーション エラーです。起動されたオブェクトはクライアントから切断されました
11
23
  ```
12
24
 
13
25
  ### 該当のソースコード
14
26
 
15
27
  ```ここに言語名を入力
28
+ Sub duplicateEstimateToInvoice()
16
- スコード
29
+ '見積書シト名を取得'
17
- ```
30
+ Dim estimateSheetName As String
31
+ estimateSheetName = ThisWorkbook.ActiveSheet.Name
18
32
 
19
- ### 試したこと
33
+ ' 請求書ファイルを開く'
34
+ Dim invoiceBookPath As String
35
+ invoiceBookPath = ThisWorkbook.path & "\請求書.xlsm"
36
+ Workbooks.Open invoiceFilePath
20
37
 
38
+ '請求書ファイルの先頭に複製を作成'
21
- ここに問題に対して試したことを記載してください。エクセルVBAでどうしても解決できないオートメーションエラーがあるので相談させてください。
39
+ ThisWorkbook.Worksheets(estimateSheetName).copy Before:=Workbooks("請求書.xlsm").Worksheets(1)
22
40
 
23
- 見積書請求書にするというマクロを作っており、
41
+ '以下タイトルやシート名を変する処理'
24
- 具体的にはこのような処理の流れになっています。
25
- (コードは質問最下部に掲載しています。)
26
42
 
27
- ①同一フォルダ内の請求書.xlsmブックを開く
28
- ②請求書.xlsmブックの先頭に見積シートのコピーを作成
29
- ③タイトルやシート名を変更
43
+ End Sub
44
+ ```
30
45
 
31
- この時、②の処理で「オートメーション エラーです。起動されたオブジェクトはクライアントから切断されましたいうメッセージが表示されます。
46
+ ### した
32
47
 
33
- デバッグボタンを押すと、こちらの部分がハイライトされます。
34
- ThisWorkbook.Worksheets(estimateSheetName).copy Before:=Workbooks("請求書.xlsm").Worksheets(1)
35
-
36
- また、エラーは毎回発生するのではなく発生したり、しなかったりで再現性がありません。
37
-
38
- 特段重い処理では無いように思いますし、コピーするシートも一般的な見積書で、大量のデータやシェイプを使用したものではないと思います。
39
- なぜこのような事が起きるか分かる方いらっしゃいますでしょうか?
40
-
41
- 試してみた事
42
48
  ・onedriveの共有対象から外す
43
49
  ・請求書.xlsmを開いた際にworkbook_openイベントで自動で実行するマクロを登録していましたが、それを削除
44
50
  ・キャッシュを削除
@@ -57,7 +63,7 @@
57
63
  ' 請求書ファイルを開く'
58
64
  Dim invoiceBookPath As String
59
65
  invoiceBookPath = ThisWorkbook.path & "\請求書.xlsm"
60
- Workbooks.Open invoiceFilePath
66
+ Workbooks.Open invoiceBookPath
61
67
 
62
68
  '請求書ファイルの先頭に複製を作成'
63
69
  ThisWorkbook.Worksheets(estimateSheetName).copy Before:=Workbooks("請求書.xlsm").Worksheets(1)
@@ -66,10 +72,10 @@
66
72
 
67
73
  End Sub
68
74
 
69
- 環境
70
- windows10
71
- Excel for microsoft 365
72
75
 
73
76
  ### 補足情報(FW/ツールのバージョンなど)
74
77
 
78
+ windows10
75
- ここにより詳細な情報を記載してください。
79
+ Excel for microsoft 365
80
+ CPU intel10世代i5
81
+ メモリ16GB