【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】

【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個でございます)、
これらの長いパスを配列に入れるというのも、メモリに負担がかかる(?)のかな
などと考えている次第でございます。

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

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

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

A 回答 (1件)

500個程度ならメモリに負担はないので、配列のソートが良いと思います。


ソートのアルゴリズムはインターネットで検索すればたくさん出てくるので、
あとはコピーして使って頂ければすぐに出来上がると思います。
    • good
    • 0
この回答へのお礼

どうもありがとうございます!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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報