回答編集履歴

2

補足追加

2018/06/27 07:08

投稿

hatena19
hatena19

スコア33715

test CHANGED
@@ -59,3 +59,65 @@
59
59
  End With
60
60
 
61
61
  ```
62
+
63
+
64
+
65
+ 補足
66
+
67
+ ---
68
+
69
+ 質問の回答ではなく、改善のアドバイスです。
70
+
71
+ ExcelオブジェクトをRecordsetのレコード数分、生成したり解放したりしてますが、無駄ですね。重くなるだけです。ループ前に一回生成して、ループを抜けてから解放すればOKです。
72
+
73
+
74
+
75
+ ```vba
76
+
77
+ '略
78
+
79
+ Dim wb As Object 'Workbook
80
+
81
+ '略
82
+
83
+
84
+
85
+ Set EE = CreateObject("Excel.Application")
86
+
87
+ '本番はfalse
88
+
89
+ EE.Visible = True
90
+
91
+ EE.ScreenUpdating = True
92
+
93
+
94
+
95
+ Do Until RS1.EOF
96
+
97
+
98
+
99
+ Set wb = EE.Workbooks.Add '新規ブックを追加
100
+
101
+
102
+
103
+ '略
104
+
105
+
106
+
107
+ WB.SaveAs "J:\シミュレート表_2018\" & Q_N & ".xlsx"
108
+
109
+ WB.Close 'ブックを閉じる
110
+
111
+
112
+
113
+ rs1.Movenext
114
+
115
+ Loop
116
+
117
+
118
+
119
+ EE.Quit 'Excel終了
120
+
121
+ Set EE = Nothing '参照開放
122
+
123
+ ```

1

コードの修正

2018/06/27 07:08

投稿

hatena19
hatena19

スコア33715

test CHANGED
@@ -1,4 +1,14 @@
1
1
  ```vba
2
+
3
+ With EE
4
+
5
+ .ScreenUpdating = True
6
+
7
+ .Workbooks.Add
8
+
9
+ End With
10
+
11
+ '中略
2
12
 
3
13
  With EE
4
14
 
@@ -14,17 +24,33 @@
14
24
 
15
25
  ```
16
26
 
17
- .Save 上書き保存なの新規ブックではエラーにので、ここでエラーになっているのでは?
27
+ EE(Excelオプジェクト)は保存でのでエラーになるのですね。
18
28
 
19
- 下記でいいと思いすが
29
+ 新規ブックを名前を付けて保存するようにししょう
30
+
31
+ .Save は上書き保存なので新規ブックではエラーになりますので、.SaveAs で。
20
32
 
21
33
 
22
34
 
23
35
  ```vba
24
36
 
37
+ Dim wb As Workbook
38
+
25
39
  With EE
26
40
 
41
+ .ScreenUpdating = True
42
+
43
+ Set wb = .Workbooks.Add
44
+
45
+ End With
46
+
47
+ '中略
48
+
49
+ With EE
50
+
27
- .SaveAs "J:\シミュレート表_2018\" & Q_N & ".xlsx"
51
+ WB.SaveAs "J:\シミュレート表_2018\" & Q_N & ".xlsx"
52
+
53
+ WB.Close
28
54
 
29
55
  .Quit 'Excel終了
30
56