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

質問編集履歴

1

該当ソースを省略せずに入力

2020/01/24 10:32

投稿

dispatch_worker
dispatch_worker

スコア4

title CHANGED
File without changes
body CHANGED
@@ -7,16 +7,48 @@
7
7
  Workbooks.Open(フルパスファイル名, 0)を実行するとErr.Numberが9になる端末がある。
8
8
  同じファイルにも関わらず、もう一方の端末は、Err.Numberに0が返ってくる。
9
9
 
10
+ **投稿後、追記**
11
+ Set wb = Workbooks.Open(Me.Range("B6"), 0)のコードが実行されると
12
+ Err.Numberが9(インデックスが有効範囲にありません。)になるが、
13
+ ErrLabl:に飛ばず、Set ws = wb.Worksheets("sheet1")以降のコードが実行され、
14
+ If Err.Number <> 0 Thenの判定で、Err.Numberが9のため、
15
+ "データ取込対象のシートが存在しません。"のメッセージが表示される。
16
+
10
17
  ### 該当のソースコード
11
18
 
12
19
  ```VBA
13
20
 
14
21
  On Error GoTo ErrLabl
15
22
 
23
+ Dim wb As Workbook
16
- Workbooks.Open(フルパスファイル名, 0)
24
+ Dim ws As Worksheet
17
25
 
26
+ errMsg = ""
27
+
28
+ 'B6セルにファイルのフルパスが入力されている。
29
+ Set wb = Workbooks.Open(Me.Range("B6"), 0)
30
+ Set ws = wb.Worksheets("sheet1")
31
+
32
+ Call ws.Range("H8:J16").Copy
33
+
34
+ Call ThisWorkbook.Worksheets("test").Cells(2, 3).PasteSpecial(xlPasteValues)
35
+
36
+ Application.CutCopyMode = False
37
+
18
38
  ErrLabl:
19
39
 
40
+ If Err.Number <> 0 Then
41
+ errMsg = "データ取込対象のシートが存在しません。"
42
+ End If
43
+
44
+ If Not wb Is Nothing Then
45
+ Call wb.Close(False)
46
+ Set wb = Nothnig
47
+ Set ws = Nothing
48
+ End If
49
+
50
+
51
+
20
52
  ```
21
53
 
22
54
  ### 試したこと
@@ -25,8 +57,12 @@
25
57
  Workbooks.Open(フルパスファイル名, UpdateLinks:=False )にしたが結果が変わらないことを確認
26
58
  Workbooks.Openのコードのステップ実行直前は、Err.Numberが0で、
27
59
  コードをステップ実行するとErr.Numberが9にはなるがファイルは開かれて、ErrLabl:に飛ばないことを確認。
60
+ **投稿後、追記**
61
+ エクセルのオプションが同じことを確認。
28
62
 
29
63
  ### 補足情報(FW/ツールのバージョンなど)
30
64
  どちらの端末も以下のとおり。
31
65
  OS:Windows7
32
- Excel2007
66
+ Excel2007
67
+ **投稿後、追記**
68
+ 開くファイルの拡張子は、xlsxで、VBAコードがないものです。