• ベストアンサー

ファイル名を降順に取得したい

strフルファイル名 = Dir("C:\Users\*.*", vbNormal) Do While strフルファイル名 <> "" mystr= strフルファイル名 strフルファイル名 = Dir() Loop このような感じでフォルダの中のファイル名を取得しているのですが 取得する際、名前を降順に取得する方法はありますか? 俗にいうバブルソートと言う方法を勉強する歯科なのでしょうか?

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

  • ベストアンサー
  • nerimaok
  • ベストアンサー率34% (1125/3221)
回答No.3

sort関数が無いので自分でsortするか・・・って、その必要は無いです。sortメソッドが使えます。 http://home.att.ne.jp/zeta/gen/excel/c04p41.htm シートに書き込む前にというんでしたら自分で組むのも有りですけど。 http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_800.html

MCTWHBWTHE
質問者

お礼

ありがとうございました。

その他の回答 (2)

  • m3_maki
  • ベストアンサー率64% (296/460)
回答No.2

> 名前を降順に取得する方法はありますか? VBA で Dir 関数 を使用して、ということでしたら、 できません。 Office2007 の 「Dir 関数」 のヘルプに ヒント 取得したファイルを整理する必要があるときには、ファイル名を配列に格納して並べ替え (ソート) を行ってください。 との記述があります。 こちらのヘルプにも表現が異なりますが、同様のことが書かれています。 http://office.microsoft.com/ja-jp/access-help/HA001228824.aspx

MCTWHBWTHE
質問者

お礼

ありがとうございました。

  • shintaro-2
  • ベストアンサー率36% (2266/6245)
回答No.1

dirコマンドのスイッチが以下のようになってます。 ですから、スイッチとして /O-N を追加すれば良いのでは C:\Users>dir /? ディレクトリ中のファイルとサブディレクトリを一覧表示します。 DIR [ドライブ:][パス][ファイル名] [/A[[:]属性]] [/B] [/C] [/D] [/L] [/N] [/O[[:]ソート順]] [/P] [/Q] [/R] [/S] [/T[[:]タイムフィールド]] [/W] [/X] [/4] [ドライブ:][パス][ファイル名] 一覧表示するドライブ、ディレクトリ、またはファイルを指定します。 /A 指定された属性のファイルを表示します。 属性 D ディレクトリ R 読み取り専用 H 隠しファイル A アーカイブ S システム ファイル I 非インデックス対象ファイル L 再解析ポイント - その属性以外 /B ファイル名のみを表示します (見出しや要約が付きません)。 /C ファイル サイズを桁区切り表示します。これは 既定の設定です。/-C とすると桁区切り表示されません。 /D /W と同じですが、ファイルを列で並べ替えた一覧を表示します。 /L 小文字で表示します。 /N ファイル名を右端に表示する一覧形式を使用します。 /O ファイルを並べ替えて表示します。 ソート順 N 名前順 (アルファベット) S サイズ順 (小さい方から) E 拡張子順 (アルファベット) D 日時順 (古い方から) G グループ (ディレクトリから) - 降順 /P 1 画面ごとに停止して表示します。 /Q ファイルの所有者を表示します。 /R ファイルの代替データ ストリームを表示します。 /S 指定されたディレクトリおよびそのサブディレクトリのすべての ファイルを表示します。 /T どのタイム フィールドを表示するか、または並べ替えに使用するかを 指定します。 タイムフィールド C 作成 A 最終アクセス W 最終更新 /W ワイド一覧形式で表示します。 /X このオプションは MS-DOS 形式以外のファイル名に対する短い名前を 表示します。長い名前の前に短い名前を表示する点を除けば、 /N オプションと同じです。短い名前がない場合は、ブランクに なります。 /4 4 つの数字で年を表示します。 環境変数 DIRCMD にスイッチを設定できます。 /-W のように - (ハイフン) を前に付けると、そのスイッチは無効になります。

MCTWHBWTHE
質問者

お礼

ありがとうございました。

関連するQ&A

専門家に質問してみよう