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

回答編集履歴

1

修正

2020/08/07 01:15

投稿

mattuwan
mattuwan

スコア2167

answer CHANGED
@@ -17,7 +17,7 @@
17
17
  Set mFSO = New FileSystemObject
18
18
 
19
19
  'ファイルフルパス一覧取得
20
- GetFileList strFolder, ix
20
+ GetFileList mFSO.GetFolder(strFolder), ix
21
21
  End Sub
22
22
 
23
23
  'フォルダの選択
@@ -34,26 +34,27 @@
34
34
  End Function
35
35
 
36
36
  'ファイル一覧取得(サブフォルダ含む)
37
- Private Function GetFileList(ByVal sPath As String, ByRef i As Long) As Boolean
37
+ Private Function GetFileList(ByVal objFolder As Folder, ByRef i As Long) As Boolean
38
- Dim objFolder As Folder
38
+ Dim fo As Folder
39
- Dim objFile As File
39
+ Dim fi As File
40
40
 
41
- For Each objFolder In mFSO.GetFolder(sPath).SubFolders
41
+ For Each fo In objFolder.SubFolders
42
- GetFileList objFolder.Path, i
42
+ GetFileList fo, i
43
+ Next
43
44
 
44
- For Each objFile In objFolder.Files
45
+ For Each fi In objFolder.Files
45
- If mFSO.GetExtensionName(objFile) Like "xls?" Then
46
+ If mFSO.GetExtensionName(fi) Like "xls?" Then
46
- i = i + 1
47
+ i = i + 1
47
- With mRng(i, 1)
48
+ With mRng(i, 1)
48
- .Worksheet.Hyperlinks.Add Anchor:=.Cells, _
49
+ .Worksheet.Hyperlinks.Add Anchor:=.Cells, _
49
- Address:=objFile.Path, _
50
+ Address:=fi.Path, _
50
- TextToDisplay:=objFile.Name
51
+ TextToDisplay:=fi.Name
51
- End With
52
+ End With
52
- End If
53
+ End If
53
- Next
54
54
  Next
55
55
  End Function
56
56
 
57
+
57
58
  ```
58
59
 
59
60
  僕なら
@@ -77,9 +78,8 @@
77
78
  Dir関数の方が処理は速いらしいですが、コードを書くのに
78
79
  FSOの方が使い便利がいいので。
79
80
 
80
- あと、ループの仕方も違いますが、その辺はお好みで。
81
- 出力される順番が違ってくるかも知れませんが。
82
-
83
81
  ※簡単な動作確認はしてますが、
84
82
  もれなくリストアップされるかは確認してませんので、
85
- 間違いがないか自己責任でお願いします。
83
+ 間違いがないか自己責任でお願いします。
84
+
85
+ ※コードに不具合があったので修正しました。