Excel VBA質問箱 IV

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

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


58764 / 76732 ←次へ | 前へ→

【22691】Re:Dir関数でサブフォルダまでファイル検索
質問    - 05/2/28(月) 15:11 -

引用なし
パスワード
   ▼kazu さん:


ありがとうございます。

動作確認してみました。。
階層を999(最下位までと指定している)のですがやはり、1階層下までしか
検索してないようなのですが、2000と97で動作が違うのでしょうか?

また、質問ばかりになってしまうのですが、
'アクセス出来ないフォルダ(System Volume Information等)へのアクセス考慮
というのは具体的に何を行っているのでしょうか?

お忙しい中恐縮ですが、ご教授お願いいたします。


> 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
>
0 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 お礼

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