Excel VBA質問箱 IV

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

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


58766 / 76732 ←次へ | 前へ→

【22689】Re:Dir関数でサブフォルダまでファイル検索
発言  kazu  - 05/2/28(月) 13:27 -

引用なし
パスワード
    StopLv  ← 何階層堀り下げるかの設定。
StopLv = 999 なら最下位層迄です。

会社なんで、Officeが97環境しか無いんで
Split97 という関数使ってますが、2000以降であればSplitで問題ないと思います。


Sub test()

  Dim Mydir As String
  Dim Filename As String
  Dim mySh As String
  Dim a As String
  Dim myRng As Range
  Dim i As Long
  Dim n, ShtName, Flg
  Dim AryFld()
  
Cons_Fld = "C:\test"
StopLv = 999
Set myFso = CreateObject("Scripting.FileSystemObject")

Set myFld = myFso.GetFolder(Cons_Fld).SubFolders
ReDim AryFld(0)
AryFld(0) = Cons_Fld
n = 1
c = 1
 
Do
  'アクセス出来ないフォルダ(System Volume Information等)へのアクセス考慮
  On Error Resume Next
  If Not Err Then
    For Each Fld In myFld
      If Not IsEmpty(Fld) Then
        If Lv_Chk(Cons_Fld, Fld.Path) <= StopLv - 1 Or StopLv = 999 Then
          ReDim Preserve AryFld(n)
          AryFld(n) = Fld.Path
          n = n + 1
        End If
      End If
    Next
  Else
    Err.Clear
  End If
  On Error GoTo 0
  If i > c Then Set myFld = myFso.GetFolder(AryFld(c)).SubFolders
  c = c + 1
Loop Until c > i

Set Sub_Fld = Nothing
Set Myfso = Nothing
      
      For Each SchFld In AryFld
      'ファイル名を指定
      Filename = Dir(SchFld & "\" & "*表.xls", vbNormal)
      
      Do While Filename <> ""
      
      'ファイルを開く
      Workbooks.Open SchFld & "\" & Filename
      
       'シートの有無を確認
       
       ShtName = "VER5.0"      
        Flg = True
      
       For n = 1 To Worksheets.Count
         If StrConv(Worksheets(n).Name, vbUpperCase + vbNarrow) = ShtName Then
          Flg = False
          Exit For
         End If
       Next n
       
        'シートVer5.0がある場合
        If Flg = False Then
          'MsgBox ShtName & "は存在します。"
         
           'シートを選択
          With Sheets("Ver5.0")


            For i = 5 To .Range("j65536").End(xlUp).Row
             If .Cells(i, "j").Value <> "" Then
               .Cells(i, "j").Offset(, 1).Value = "OK"
             End If
            Next
            
          End With
          
                  
          Workbooks(Filename).Save
          Workbooks(Filename).Close
          
        'シートVer5.0がない場合
        Else
          
          ' MsgBox ShtName & "は存在しません。"
          Workbooks(Filename).Close
        End If
     'End If
    
     Filename = Dir()
    Loop
   Next   
End Sub


Function Lv_Chk(Fld_Main, StrFld)
  Cnt = InStr(1, Fld_Main, StrFld)
  Tmp = Split97(Mid(StrFld, Len(Fld_Main) + 1), "\")
  Lv_Chk = UBound(Tmp)
End Function

Function Split97(ByVal StrTmp, ByVal Strbunri)
  Dim Split97Tmp()  '配列一時格納用
  Dim i As Long    'カウンタ変数
  Dim IntTmp As Long '区切り文字位置格納用変数
  
  IntTmp = InStr(1, StrTmp, Strbunri)
  If IntTmp = 0 Then
    ReDim Split97Tmp(0)
    Split97Tmp(0) = StrTmp
  Else
    Do Until IntTmp = 0
      ReDim Preserve Split97Tmp(i)
      Split97Tmp(i) = Left(StrTmp, IntTmp - 1)
      i = i + 1
      StrTmp = Mid(StrTmp, IntTmp + Len(Strbunri))
      IntTmp = InStr(1, StrTmp, Strbunri)
    Loop
  End If
  ReDim Preserve Split97Tmp(i)
  Split97Tmp(i) = StrTmp
  Split97 = Split97Tmp
End Function

1 hits

【22592】Dir関数でサブフォルダまでファイル検索 05/2/24(木) 14:39 質問
【22594】Re:Dir関数でサブフォルダまでファイル検索 MMX 05/2/24(木) 15:06 発言
【22596】Re:Dir関数でサブフォルダまでファイル検索 kazu 05/2/24(木) 15:47 発言
【22602】Re:Dir関数でサブフォルダまでファイル検索 05/2/24(木) 18:34 質問
【22610】Re:Dir関数でサブフォルダまでファイル検索 05/2/24(木) 19:35 質問
【22613】Re:Dir関数でサブフォルダまでファイル検索 kazu 05/2/24(木) 19:46 発言
【22615】Re:Dir関数でサブフォルダまでファイル検索 05/2/24(木) 19:57 質問
【22617】Re:Dir関数でサブフォルダまでファイル検索 kazu 05/2/24(木) 20:24 発言
【22620】Re:Dir関数でサブフォルダまでファイル検索 05/2/24(木) 21:48 質問
【22622】Re:Dir関数でサブフォルダまでファイル検索 kazu 05/2/24(木) 22:06 発言
【22628】Re:Dir関数でサブフォルダまでファイル検索 05/2/24(木) 22:48 質問
【22630】Re:Dir関数でサブフォルダまでファイル検索 ichinose 05/2/24(木) 22:57 発言
【22632】Re:Dir関数でサブフォルダまでファイル検索 kazu 05/2/24(木) 23:19 発言
【22641】Re:Dir関数でサブフォルダまでファイル検索 MMX 05/2/25(金) 10:17 お礼
【22642】Re:Dir関数でサブフォルダまでファイル検索 でれすけ 05/2/25(金) 10:31 発言
【22646】Re:Dir関数でサブフォルダまでファイル検索 05/2/25(金) 12:02 お礼
【22681】Re:Dir関数でサブフォルダまでファイル検索 05/2/28(月) 1:12 質問
【22682】Re:Dir関数でサブフォルダまでファイル検索 ちゃっぴ 05/2/28(月) 1:21 発言
【22683】Re:Dir関数でサブフォルダまでファイル検索 でれすけ 05/2/28(月) 1:28 回答
【22689】Re:Dir関数でサブフォルダまでファイル検索 kazu 05/2/28(月) 13:27 発言
【22691】Re:Dir関数でサブフォルダまでファイル検索 05/2/28(月) 15:11 質問
【22693】Re:Dir関数でサブフォルダまでファイル検索 kazu 05/2/28(月) 18:09 発言
【22694】Re:Dir関数でサブフォルダまでファイル検索 kazu 05/2/28(月) 18:13 発言
【22700】Re:Dir関数でサブフォルダまでファイル検索 05/2/28(月) 20:13 質問
【22704】Re:Dir関数でサブフォルダまでファイル検索 kazu 05/2/28(月) 21:43 発言
【22705】Re:Dir関数でサブフォルダまでファイル検索 イオン 05/2/28(月) 21:48 お礼
【22722】Re:Dir関数でサブフォルダまでファイル検索 05/3/1(火) 10:18 お礼

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