|
たびたびすいません。
親フォルダーの下の子フォルダー名を取得するマクロを作成したんですが
不可解な現象が起きました。理由を教えて頂きたく投稿しました。
『作成コードと問題点』
親フォルダーの下の各種ファイルは対象外としています。
下記コードの
If i >= 3 Then というコードは当初設定していませんでした。
設定前の、Msgboxの表示は
(空欄)→(空欄)→「正しいフォルダー名」→「正しいフォルダー名」・・以下省略
となり、他の親ホルダーでも、最初の2回が表示されませんでした。
『疑問点』
取りあえず、3個目からのフォルダー名を表示するようにして問題解決していますが
なぜ最初から「正しいフォルダー名」が取得できないのかが分りません。
前記現象の理由と、最初から表示する(i=1で)方法を教えていただきたく投稿しました。
(現状ではカウンター「i」を利用する時も「2」ずれるため、ちょっと不便です)
宜しくお願いします。
Sub Folder検索()
Dim FolderName As String
Dim i As Integer
Dim myFile As String
i = 1
FolderName = Dir("C:\My Documents\日本史\", vbDirectory)
Do While FolderName <> ""
If i >= 3 Then '← 問題の解決策
myFile = FolderName Like "*.*"
If myFile = False Then
MsgBox FolderName
End If
End If
FolderName = Dir()
i = i + 1
Loop
End Sub
『実験』
因みに、最初の行を
FolderName = Dir("C:\My Documents\日本史\", vbNormal)
としたら、『最初から』ファイル名は表示されていました。
|
|