回答編集履歴

2

追記

2018/09/16 17:01

投稿

退会済みユーザー
test CHANGED
@@ -19,3 +19,85 @@
19
19
  consDEST = dest & "\" & FolderName & "\"
20
20
 
21
21
  ```
22
+
23
+
24
+
25
+ 【2018/9/17 2:00:00追記】
26
+
27
+ 実際にネットワーク上においてデバッグしてみました。
28
+
29
+
30
+
31
+ > Dim sour, dest, consSOUR, consDEST As Long
32
+
33
+
34
+
35
+ この構文ですが本当にこう書いてます?
36
+
37
+ VBAのDimは一度に型指定することは出来ないので、
38
+
39
+ ・sour,dest,consSOURは省略とみなされVariant型
40
+
41
+ ・consDESTだけがLong型
42
+
43
+ で定義されています。
44
+
45
+
46
+
47
+ ファイルパスであるconsDESTがLong型では動かないはずですが、本当はこうではないですか?
48
+
49
+ ```VBA
50
+
51
+ Dim sour As String, dest As String, consSOUR As String, consDEST As String
52
+
53
+ Dim FolderName As String, Path As String, TargetPath As String
54
+
55
+ ```
56
+
57
+
58
+
59
+ > 'FSOによるファイルコピー
60
+
61
+
62
+
63
+ MoveFile使ってますが、移動じゃないんですか?
64
+
65
+
66
+
67
+ consSOUR の該当ファイルが0件の場合に「ファイルが見つかりません」が出るようです。
68
+
69
+
70
+
71
+ ワイルドカードでファイルが1件以上存在するか確認する方法がfsoには無かったと思うので、下記通りDirを使ってチェックするように直したほうが良いと思います。
72
+
73
+ ```VBA
74
+
75
+ For j = 7 To Cells(Rows.Count, "B").End(xlUp).Row
76
+
77
+ sour = Cells(j, 2).Value
78
+
79
+ dest = Cells(j, 3).Value
80
+
81
+ consSOUR = sour & "\" & "*.txt"
82
+
83
+ consDEST = dest & "\" & FolderName & "\"
84
+
85
+
86
+
87
+ 'FSOによるファイル移動
88
+
89
+ If Dir(consSOUR) <> "" Then
90
+
91
+ FSO.MOVEFILE consSOUR, consDEST
92
+
93
+ Else
94
+
95
+ Debug.Print consSOUR & "に該当ファイル無し"
96
+
97
+ End If
98
+
99
+ Next j
100
+
101
+ ```
102
+
103
+ この修正で私の環境では問題なく動きました。一度ご確認ください。

1

追記

2018/09/16 17:01

投稿

退会済みユーザー
test CHANGED
@@ -8,6 +8,8 @@
8
8
 
9
9
  FileSystemObjectのMoveFileメソッドの第二引数「destination」ですが、ここにフォルダを指定する場合は、最後に\記号が必要となります。
10
10
 
11
+ (そうしないと拡張子の存在しないファイル名と判別できないですからね)
12
+
11
13
 
12
14
 
13
15
  従って次のように修正してみてください。