質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

1回答

5009閲覧

FSO,GetFolder(Path).Filesで取得したファイル順を並べ替えたい

vbNetBeginner

総合スコア19

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

1クリップ

投稿2020/02/05 04:23

現在、

Excel

1 Set objFile = FSO.GetFolder(Path).Files 2 For Each fList In objFile 3 If Right(fList.Name, 3) <> "csv" Then GoTo Next_File 4 Call CSV_READ_Macro(fList, Array) 5 Next fList

という処理を行っていますがファイルオーダーを
処理1
処理2
処理3
処理4・・・

という並びで行ってほしいと依頼が来ました。
汎用性を持たせたいので個別の「処理」という文字列を使わないで順序を作りたいのですが
良い方法、アドバイスはありますでしょうか、それとも配列に入れて+Counter値でパス名を
作るのが良い方法でしょうか。

ご意見ご指導よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dodox86

2020/02/05 05:43 編集

やりたいことが少し分からないのですが、FSO,GetFolder(Path).Files で列挙されたファイル名を昇順(あるいは降順)で並び替えたい(ソートしたい)と言うことなのでしょうか? 例えばfile2.txt, file3.txt, file1.txt なら、file1.txt, file2.txt, file3.txt とのように。
vbNetBeginner

2020/02/05 05:45

その通りです。 ただ10個以上ファイルがある場合純然たる昇順だと1,2、~とはならず1,10,2という並びになるのが昇順だと考えますが、依頼は1,2,3,4,5という並びで処理してほしい、とのことです。
hatena19

2020/02/05 06:56

アプリはExcelですか、Accessですか、それとも、アプリに関わりなくVBA上のみで完結したいですか。 Excelならシート上で並べ替え、Accessならクエリで並べ替えができます。
vbNetBeginner

2020/02/05 06:59

アプリはExcelです。シート上での並べ替えは思いつきませんでした。 作業用シートを作って並び替えて再度配列に入れて処理する事を考えてみたいと思います。 ありがとうございます。
hatena19

2020/02/05 07:23

作業列で「処理」の部分を取り除いて数値に変換して、それを昇順にソートすればいいですね。
tatsu99

2020/02/05 07:52

実際のファイル名は具体的にはどのようになっていますか。 処理n.csv でしょうか。(nは0以上の整数の数字)
vbNetBeginner

2020/02/05 07:56

概ねその通りです。 処理中x.csv(個数は可変) 止め.csv(常に同じ名前) が1フォルダにまとめられています。
guest

回答1

0

自己解決

今回は特定業務専用のプログラム作成だということで、
不本意ながら出現する可能性があるファイル名+連番をふって
処理する事になりました。

みなさまお知恵をお借りいたしました。感謝いたします。
しかしながら、これ以降同様かつファイル名称が予想できない
同様のケースもあると思われます。

その際はまたお知恵をお借りいたしたいと考えています。

末筆ながら、大変ありがとうございました。

投稿2020/02/05 08:21

vbNetBeginner

総合スコア19

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

vbNetBeginner

2020/02/12 08:26

汎用性を求められたので、ご意見頂いた中で簡単に実装できそうな「Excelならシート上で並べ替え」を利用させていただきました。まずファイル名をA列に列挙してB列に処理順を入力してもらい、B列をキーにソートをかけてそのオーダーでファイルを処理するようにしたところ大変満足していただきました。改めてありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問