Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


29539 / 76738 ←次へ | 前へ→

【52479】フォルダー名の取得
質問    - 07/11/15(木) 14:16 -

引用なし
パスワード
   たびたびすいません。
親フォルダーの下の子フォルダー名を取得するマクロを作成したんですが
不可解な現象が起きました。理由を教えて頂きたく投稿しました。

『作成コードと問題点』
親フォルダーの下の各種ファイルは対象外としています。

下記コードの
   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)
としたら、『最初から』ファイル名は表示されていました。

0 hits

【52479】フォルダー名の取得 07/11/15(木) 14:16 質問
【52481】Re:フォルダー名の取得 じゅんじゅん 07/11/15(木) 14:33 発言
【52486】Re:フォルダー名の取得 07/11/15(木) 15:42 お礼
【52483】Re:フォルダー名の取得 Jaka 07/11/15(木) 14:49 発言
【52487】Re:フォルダー名の取得 07/11/15(木) 15:53 お礼
【52488】Re:フォルダー名の取得 07/11/15(木) 15:58 お礼

29539 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free