こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

VBA フォルダ内のファイルを、ファイル名順に開く

【PPT VBA】フォルダ内のファイルを、ファイル名順に開く方法について


 今晩は、質問させていただきます。どうぞよろしくお願いいたします。

 環境:Win7+PPT2007 になります。

 下記のようなコードで、あるフォルダ内のファイル群のデータを取得しております。
「ファイル名順」でデータを取り出したいのですが、違う順(おそらく日時順)で
出てくるので悩んでいる次第でございます。
 検索いたしておりますと、ハードディスク等の環境によって検出順が異なるようでございましたが
何か、良さそうな方法がございましたらお教えいただきたくお願いいたします。

Dim File_Collection As Object
Dim File_List As Variant
Dim Folder_Collection As Object
Dim Folder_List As Variant

Set File_Collection = CreateObject("Scripting.FileSystemObject") _
.GetFolder(パス).Files

For Each File_List In File_Collection
     '(名前順では検出してくれません。。。)
Next

 暫く考えまして、例えば
Stringの配列を用意しておいて一旦、上記コードでファイル名とパスをリスト化
→配列の文字列を登り順に、Sort
→これの順にファイルを開いていく
などという事を思いつきました。しかしファイル数が多いため(100~500個でございます)、
これらの長いパスを配列に入れるというのも、メモリに負担がかかる(?)のかな
などと考えている次第でございます。

 他に、配列の代わりにエクセルを一旦開いて、そこでソート・・・・・とも考えましたが
友人達に使っていただく可能性があり、余りスマートな解決策ではなさそうですので
それよりは上記の「配列でソート」を優先したい次第でございます。

 コーディングで何か良い方法があれば良いのでございますが、
他の方法でも結構でございます。もし「自分なら、こうするかな」といった
ようなご意見などございましたら是非、ご紹介いただけないでしょうか。

 もしお詳しい方がいらっしゃいましたら,どうぞよろしくお願いいたします。

投稿日時 - 2012-07-23 21:45:09

QNo.7606953

困ってます

質問者が選んだベストアンサー

500個程度ならメモリに負担はないので、配列のソートが良いと思います。
ソートのアルゴリズムはインターネットで検索すればたくさん出てくるので、
あとはコピーして使って頂ければすぐに出来上がると思います。

投稿日時 - 2012-07-23 22:15:54

お礼

どうもありがとうございます!m(_ _)m

はい、今作成いたしました(^^
が、、、「test_2.txt」より「test_10.txt」が先になってしまいます。。。

1→2→3→・・・→10→11→
となってほしいのですが、
1→10→11→・・・18→19→2→3→
となってしまいます。orz

もう少し検索して頑張ってみます!

この度はご親切にアドバイスいただき誠にありがとうございました!!(`_´ゞ

投稿日時 - 2012-07-24 09:38:13

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問