質問編集履歴
1
該当ソースを省略せずに入力
test
CHANGED
File without changes
|
test
CHANGED
@@ -16,6 +16,20 @@
|
|
16
16
|
|
17
17
|
|
18
18
|
|
19
|
+
**投稿後、追記**
|
20
|
+
|
21
|
+
Set wb = Workbooks.Open(Me.Range("B6"), 0)のコードが実行されると
|
22
|
+
|
23
|
+
Err.Numberが9(インデックスが有効範囲にありません。)になるが、
|
24
|
+
|
25
|
+
ErrLabl:に飛ばず、Set ws = wb.Worksheets("sheet1")以降のコードが実行され、
|
26
|
+
|
27
|
+
If Err.Number <> 0 Thenの判定で、Err.Numberが9のため、
|
28
|
+
|
29
|
+
"データ取込対象のシートが存在しません。"のメッセージが表示される。
|
30
|
+
|
31
|
+
|
32
|
+
|
19
33
|
### 該当のソースコード
|
20
34
|
|
21
35
|
|
@@ -28,11 +42,61 @@
|
|
28
42
|
|
29
43
|
|
30
44
|
|
45
|
+
Dim wb As Workbook
|
46
|
+
|
47
|
+
Dim ws As Worksheet
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
errMsg = ""
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
'B6セルにファイルのフルパスが入力されている。
|
56
|
+
|
31
|
-
Workbooks.Open(
|
57
|
+
Set wb = Workbooks.Open(Me.Range("B6"), 0)
|
58
|
+
|
59
|
+
Set ws = wb.Worksheets("sheet1")
|
60
|
+
|
61
|
+
|
62
|
+
|
63
|
+
Call ws.Range("H8:J16").Copy
|
64
|
+
|
65
|
+
|
66
|
+
|
67
|
+
Call ThisWorkbook.Worksheets("test").Cells(2, 3).PasteSpecial(xlPasteValues)
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
Application.CutCopyMode = False
|
32
72
|
|
33
73
|
|
34
74
|
|
35
75
|
ErrLabl:
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
If Err.Number <> 0 Then
|
80
|
+
|
81
|
+
errMsg = "データ取込対象のシートが存在しません。"
|
82
|
+
|
83
|
+
End If
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
If Not wb Is Nothing Then
|
88
|
+
|
89
|
+
Call wb.Close(False)
|
90
|
+
|
91
|
+
Set wb = Nothnig
|
92
|
+
|
93
|
+
Set ws = Nothing
|
94
|
+
|
95
|
+
End If
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
|
36
100
|
|
37
101
|
|
38
102
|
|
@@ -52,6 +116,10 @@
|
|
52
116
|
|
53
117
|
コードをステップ実行するとErr.Numberが9にはなるがファイルは開かれて、ErrLabl:に飛ばないことを確認。
|
54
118
|
|
119
|
+
**投稿後、追記**
|
120
|
+
|
121
|
+
エクセルのオプションが同じことを確認。
|
122
|
+
|
55
123
|
|
56
124
|
|
57
125
|
### 補足情報(FW/ツールのバージョンなど)
|
@@ -61,3 +129,7 @@
|
|
61
129
|
OS:Windows7
|
62
130
|
|
63
131
|
Excel2007
|
132
|
+
|
133
|
+
**投稿後、追記**
|
134
|
+
|
135
|
+
開くファイルの拡張子は、xlsxで、VBAコードがないものです。
|