[[20070903093623]] 『dir関数で"."".."を取得しないようにするには』(tomato) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『dir関数で"."".."を取得しないようにするには』(tomato)

Dir関数によるフォルダ名の取得しかたについて教えてください。
本校の講座「ファイル一覧の印刷」の目的とは若干違いますがこれを参考にして

 Sub CurFileList(r, c, cur, opt)のなかの

     myfile = Dir(cur2, vbNormal)   ' ←ポイント1
     myfile = Dir(cur2, vbDirectory)

のようにvbDirectoryで、"*"を条件にデータを取得させると必ず "."".."の2項目が出てしまいます。

セルに書かせたあとから消すのは容易ですが、最初からこれを除外して実在フォルダ名だけを取得し、UserformのListboxなどに取り込むにはどうすればいいのでしょうか?

[エクセルのバージョン]
Excel2000
OSのバージョン]
Windows2000


 >最初からこれを除外して実在フォルダ名だけを取得し、
 取得してもセルに書き出す前に判定するのはダメなのでしょうか?
 (じゅんじゅん)

すみません。その判定の仕方がわかりません(泣
     Do While myfile <> Empty
         Cells(r, c).Value = myfile
         Cells(r, c + 1).Value = FileDateTime(cur & myfile) 'ファイルの更新日付
         r = r + 1
     Loop
このLoopのなかでどうやって条件を入れる?
(tomato)

 コードの全貌が分からないので,見当違いかもしれませんが,
 フォルダ名だけを取得する必要があるのでしょうか?
 ファイルのパスが重要だと思うのですが・・・
 パスならば『CurDir()』で取得できます。

 おかしなことを言っていたら無視して下さい。
 (tomo)

  If myfile <> "." And myfile <> ".." Then
     Cells(r, c).Value = myfile
     Cells(r, c + 1).Value = FileDateTime(cur & myfile) 'ファイルの更新日付
     r = r + 1
  End If
 でどうでしょう?

 でも、
 myfile=dir() が足りないような???
 (じゅんじゅん)

じゅんじゅんさん
ありがとうございました。

Do While myfile <> Empty

   If myfile <> "." And myfile <> ".." Then
      Cells(r, c).Value = myfile
      Cells(r, c + 1).Value = FileDateTime(cur & myfile) 'ファイルの更新日付
      r = r + 1
   End If
    myfile=dir()
Loop

でバッチリでした。

じつは条件に Or を使って

If myfile <> "." Or myfile <> ".." Then

とやってしまい、うまくいかなかったという、なんともお粗末・・・とほほ

でも、こんな条件をわざわざつけなくても「(常人には)見えていないものまで取り込まなくても・・」という、なんか「(VBA)らしくないじゃん」という疑問はのこります。

tomoさんの『CurDir()』でもそのディレクトリに格納されたすべてのフォルダ名などを取得できるのでしょうか??


 全てのフォルダ名は取得できません。
 あくまでもカレントディレクトリ(ファイル-開くのウィンドウの階層)のパスだけです。
 (コードを見るとファイル名の取得のような気がするのですが・・・ ファイル名の取得?フォルダ名の取得?)

 まあ,解決したようなので,忘れてください。(tomo)

 >Do While myfile <> Empty 
 myfile はstring型で返ってくると思うので Empty で大丈夫ですか?

 Do While myfile <> ""
 とか
 Do While Len(myfile) > 0
 とか
 Do While myfile <> vbNullString
 とか
 (seiya) 

seiyaさんありがとうございます。

問題はなさそうでしたが、"" に修正しました。


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.