VBAは本を入門書を読み始めたばかりの初心者です。
一つのフォルダ内にエクセルファイルとcsvファイルが混在(400くらいずつ)あります。このうちエクセルファイルのみ降順で並べ替えをしたいと思います。データの範囲はA1:I501で1行目は見出しでA列は日付が入っているのですが、日付が昇順で入っているため日付を基準にして降順にしたいです。全てのファイルにシートは一つしかありません。
マクロの記録で作成したところ
Sub 並べ替え降順()
'
' 並べ替え降順 Macro
'
'
Columns("A:A").ColumnWidth = 10.63 '先ずA列の幅を整える
Range("A1:I501").Select
ActiveWorkbook.Worksheets(1).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(1).Sort.SortFields.Add Key:=Range("A1"), _
SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets(1).Sort
.SetRange Range("A2:I501")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
こんな感じになったのですが、これをフォルダ内の全てのエクセルファイルにおなじ処理をするにはどうしたらよいのでしょうか?詳しい方いらっしゃいましたらどうぞよろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
エクセルVBAのことだとすると、マクロの記録が取れるのは、エクセルのシートの操作が中心。
フォルダやファイルを扱うような場面はエクセルのマクロの記録の取れる範囲ではない。
それも経験して無い・わかってない人が、質問の課題をするのは速すぎる。
内容的には、ソートなどの処理も必要で、有名とはいえ、ソートを自作するのは初心者には
大変。
(1)在るフォルダの中のファイル(名)を捕まえる方法(Dir関数やFSOを使う方法)
(3)ならシートにファイル名(ブック名)を書き出すコード
(2)エクセル・ファイルだけを選別するコード
(3)ファイル名のソート(シート上エクセルのソートを使って(VBAで)でやるか)
(4)並び順は具体的に判ったとして、フォルダ内の見てくれをその順序にする方法(コード)
必要性の中身について、場合によったら、(3)からそのファイル名で順にファイルを読みに行き、
オープンしてシートのセルの中身を見て、何か思っている処理をするとか。(4)を避ける。
OSがらみのファイルを表示する仕組みで並べ替えが出来たとしても、VBAでは扱える
ことにはならないので、考えを飛躍させないように。
ーー
作るとなると、色々勉強が必要だが、それ向きのフリーのソフトでもないか、一応探すとか。
ーー
Googleででも「ファイルの表示 順序」で照会し記事を読んで考えたら。色々前提知識が要る
ことがわかるだろう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) マクロで最終行を取得してコピーしたい 3 2022/04/06 19:07
- Visual Basic(VBA) Excel_マクロ_現在開いているシートにマクロを実行したいです 1 2023/02/14 23:54
- Visual Basic(VBA) Excel VBAで並べ替えをしたい 3 2023/02/25 09:31
- Excel(エクセル) 複数のブックをひとつのブック(複数のシートにまとめる)場合にシートとの順番について 5 2022/12/28 20:47
- Visual Basic(VBA) エクセル VBA 処理スピードを上げたいのですが。 6 2023/03/31 20:52
- Excel(エクセル) 並べ替え、ソートの構文がわからない。 お世話になります。VBA超初心者です。 エクセルでワークシート 2 2023/06/28 21:00
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
共有しているEXCELシートのアク...
-
エクセルで複数のブックで「元...
-
エクセルを開いたときのシート
-
ExcelファイルがDoxillionに突...
-
エクセルVBAでアクセスファイル...
-
エクセルの中にエクセルを添付...
-
エクセルの塗りつぶしの色が勝...
-
エクセルでファイルを閉じても...
-
エクセルにクリックすると指定...
-
エクセルを閉じた時、ノッペラ...
-
ACCESSのVBで、エクセルファ...
-
非表示モジュール内でコンパイ...
-
エクセルのハイパーリンクがう...
-
CSVファイルでVBAを動かす方法
-
CSVファイル
-
エクセルで1.5GBのファイルを開...
-
エクセルに不具合発生
-
Teamsにあるエクセルファイルに...
-
~$ファイル名のファイルが出現...
-
メールのエクセル添付ファイル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでファイルを閉じても...
-
エクセルVBAでアクセスファイル...
-
Lotus 1-2-3のファイルをExcel...
-
共有しているEXCELシートのアク...
-
エクセルを開いたときのシート
-
400KBのエクセルは重いの?
-
エクセルで複数のブックで「元...
-
エクセルにクリックすると指定...
-
エクセルの塗りつぶしの色が勝...
-
ExcelファイルがDoxillionに突...
-
エクセルの中にエクセルを添付...
-
メモ帳(拡張子log)の数字デー...
-
ACCESSのVBで、エクセルファ...
-
エクセルの添付ファイルに記入...
-
CSVファイルでVBAを動かす方法
-
過去の定額郵便貯金の金利表
-
HTMLの表→Excel変換
-
2画面を使ってシート別に表示す...
-
エクセルファイルがファイルの...
-
エクセルのシートが常に小さく...
おすすめ情報