回答編集履歴
2
追記
answer
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
> 質問1
|
2
2
|
|
3
|
-
提示のコードに、エクセルApplcationの終了を追加するなら、下記のコードになりますね。
|
3
|
+
提示のコードに、エクセルApplcationの終了を追加するなら、~~下記のコードになりますね~~。
|
4
|
+
**追記:** 試してみたら、`Set App = .Applcation`でエラーになりました。
|
5
|
+
Withを使わず変数宣言して `Set wb = Workbooks.Open(str1)` で開いて `wb.Application.Quit` で終了させたらエラーはなくなりましたが、タスクマネージャで確認したら、エクセルApplcation は残ってました。下記の`Test3`以降のコードの場合は、エクセルApplcationはきれいに消えました。
|
4
6
|
|
5
7
|
```vba
|
6
8
|
Sub Test2()
|
1
書式の改善
answer
CHANGED
@@ -31,12 +31,11 @@
|
|
31
31
|
|
32
32
|
End Sub
|
33
33
|
```
|
34
|
+
下記の点を理解してください。
|
35
|
+
- 参照設定してあると、Workbooks.Open すると裏でエクセルApplcationが自動生成される。
|
36
|
+
- Workbooks.Open はWorkbookオブジェクトを返す。
|
37
|
+
- Workbookの親のエクセルApplcationは、Workbookオブジェクトの Applicationプロパティで取得できる。
|
34
38
|
|
35
|
-
参照設定してあると、Workbooks.Open すると裏でエクセルApplcationが自動生成される。
|
36
|
-
Workbooks.Open はWorkbookオブジェクトを返す。
|
37
|
-
Workbookの親のエクセルApplcationは、Workbookオブジェクトの Applicationプロパティで取得できる。
|
38
|
-
|
39
|
-
|
40
39
|
ただ、参照設定をしてあるなら、下記のコードが素直で読みやすいコードだと思います。
|
41
40
|
(ちなみに、私は、変数宣言は使う前にする派です。)
|
42
41
|
|
@@ -92,5 +91,5 @@
|
|
92
91
|
|
93
92
|
上のコードを見ればわかると思いますが、
|
94
93
|
Excel.Application を生成したら、自動で破棄してくれませんので、
|
95
|
-
Quit は必須ですね。
|
94
|
+
**Quit は必須**ですね。
|
96
95
|
裏で自動で生成されたとしても。
|