Windows7 の Excel2003 で、文末のサンプルコードの sub「test」を実行すると、
上記は本番のコードで出したもの。
- 「パブリックド キュメント」下のフォルダーをリストアップするとエラーが出る。
出力されたフォルダーの中に下記の存在しないはずのフォルダーがある。- C:\Users\Public\Documents\My Music
- C:\Users\Public\Documents\My Pictures
- C:\Users\Public\Documents\My Videos
- 「パブリックド ピクチャ」では問題ない。
- 「マイドキュメント」等では問題ない。
ググったら、似たような質問が OKWave にあった。
かなり自信がありませんが・・・・勝手な推測です・・・
おそらくVBのバグだと思います。
弱ったなぁ〜
■ サンプルコード
Option Explicit Public Sub test() Call 全フォルダ取得("C:\Users\Public\Documents") End Sub Public Sub 全フォルダ取得(ByVal argPath) On Error GoTo ErrError Dim f As Object With CreateObject("Scripting.FileSystemObject") For Each f In .GetFolder(argPath).SubFolders Call 全フォルダ取得(f.Path) Debug.Print f.Path Next f End With Exit Sub ErrError: Resume Next End Sub
追伸(2013-06-02)
- Err.Number 70 の時は、Resume Nxt とした。
- 出力する前に Dir() で、存在するフォルダーか否かを確認することにした。