Excel VBA質問箱 IV

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

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


13799 / 76734 ←次へ | 前へ→

【68437】階層の深いファイルが読み取れない
質問  ミーコ  - 11/3/5(土) 22:27 -

引用なし
パスワード
   以前にこちらで質問したミーコです。
ある方より、サブフォルダに存在するExcelブックまで読み取れる
コードを教えてもらいました。
ただ、どうも

 fList = SubDir("C:\Documents and Settings\AAA\*.xls")

の部分で、階層の深いファイルが読み取れない現象が生じています。
階層が深いのが原因なのか、Excelブック名が長いのが原因なのか(80文字)わかりません。
SubDirという関数には読み取れる文字数に限界があるのでしょうか?


(教えてもらったコード)

Option Explicit
Sub Try1()
 Dim i As Long
 Dim fList() As String
 
 ''検索パスとファイル拡張子を指定してSubDir付き検索
 fList = SubDir("C:\Documents and Settings\AAA\*.xls")
 
 For i = 0 To UBound(fList)
   Debug.Print fList(i)
 Next
  
End Sub

'サブフォルダを含むファイルの検索(ファイルリストを返す)
Private Function SubDir(Filename As String) As String()
  Dim v
  Dim tmpPath As String
  Dim sCmd As String
  Dim ko As Long
  
  tmpPath = Environ$("Temp") & "\Dir.tmp"
  sCmd = "DIR """ & Filename & """ /b/s /o:N > """ _
      & tmpPath & """"
  With CreateObject("WScript.Shell")
    ko = .Run("CMD /C " & sCmd, 7, True) 'Dirコマンド実行
  End With

  Dim io As Integer
  Dim buf() As Byte
  io = FreeFile()
  Open tmpPath For Binary As io '出力ファイルリスト取得
   ReDim buf(1 To LOF(io))
   Get #io, , buf
  Close io
  Kill tmpPath
  SubDir = Split(StrConv(buf, vbUnicode), vbCrLf)
End Function
'--------------------------------------------------

2 hits

【68437】階層の深いファイルが読み取れない ミーコ 11/3/5(土) 22:27 質問
【68438】Re:階層の深いファイルが読み取れない kanabun 11/3/5(土) 23:53 発言
【68439】Re:階層の深いファイルが読み取れない ミーコ 11/3/6(日) 1:04 お礼

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