ファイル名がD303????.csv。????に日付がはります。たとえばD3031214(正確には時間まで含めたファイル名)みたいに、自動でファイルがシステム上毎日作成されます。そのうち、一番新しいファイルをリネーム、単純にD303.CSVにしてエクセルで利用したい。手順的にはエクセルをたちあげて、マクロ(VBA)を起動し、たくさんあるD303????.csvのうち一番新しいものをD303.CSVにリネームしてエクセルのシートに貼り付ける。ファイル名の変更にワールド文字がつかえないので困っています。何かいい方法はありませんか。できれば、例文もおしえていただけえばありがたいのですが。
No.4ベストアンサー
- 回答日時:
VB/excel-VBAでやって見ました。
エクセルのVBEの標準モジュールに貼り付けて
テストしてみてください。必ずフォルダ゛等のコピーを取ってそちらでやってください。一応私のMyDocumentsフォルダ内でテストしていますが、年月時刻の最後のものが、1日分の中に限って考えて、比較して最大値になるか未確認なのでよろしく。勿論最初のDIR()の()内のフォルダ名はご質問者のケースに変えてください。
GetAttr(b)は今回使っていませんが、テスト過程で使ったもので、残してあります。CSVファイルをエクセルに
読み込ます部分は省略しました。
Sub test01()
a = Dir("c:\My Documents\")
mb = ""
For i = 1 To 1000
b = Dir()
If b = "" Then Exit For
atr = GetAttr(b)
' MsgBox b & atr
' 拡張子CSVか
If Right(b, 3) <> "csv" Then GoTo e01
p = InStr(1, b, ".")
' 拡張子除きファイル名
bb = Mid(b, 1, p - 1)
' MsgBox bb
If bb > mb Then
mb = bb
mb1 = b
End If
e01:
Next i
f = "c:\My Documents\" & mb1
MsgBox f
Name f As "D303.csv" ' ファイル名変更
End Sub
皆さん、本当に早速の回答ありがとうございました。imogasiさんの回答が素人の僕に一番あってました。実際コピーして使ったらうまくいきました。VBAの中身を見ると本当に簡単ですね。でも、コロンブスの卵と同じで、白紙の状態からこれを作るのはたいへんなのでしょうか。いろんな本を見て探したりしましたが、いっぺんに悩みが解決しました。本当にありがとうございます。
No.3
- 回答日時:
こんな流れで考えました。
1)FileSystemObjectを使って候補ファイル一覧を取得。
2)文字列操作関数でファイル名から日付部分を切り出し、
日付型にキャストする。
もしくは、#1の方が言われているように、ファイルの
タイムスタンプを取得する。
3)2)で得た日付をソートする。
4)最新の日付に相当するファイル名を取得。
5)FileSystemObjectを使って、該当ファイルのファイル名を
D303.csvに変更。
6)D303.csvをエクセルで開く。
任意のファイル名の変更や、フォルダ操作は、VBScriptの
FileSystemObjectを使うと便利です。
エクセルのVBAから使うときは、参照設定で
Microsoft Scripting Runtimeオブジェクトへの参照を
追加してください。
No.2
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) CSVファイルでVBAを動かす方法 3 2023/04/04 10:22
- Access(アクセス) CSVファイルの「0落ち」にVBA 6 2023/02/02 15:27
- Visual Basic(VBA) VBA初心者です。電話番号の数字の前に0を表示させたいです。 2 2022/12/14 03:58
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
- Visual Basic(VBA) エクセルVBAについて 8 2022/07/13 22:41
- Visual Basic(VBA) エクセルVBA 4 2022/05/14 00:51
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- その他(プログラミング・Web制作) データ解析ソフトRでのファイル入力read.csvがエラーになります 7 2022/03/27 22:11
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトの「%1」と...
-
コマンドプロンプトでファイル...
-
バッチファイルで、iniファイル...
-
[DOS] コピー先に同じファイル...
-
コマンドプロンプトで変数が数...
-
フォルダ内の更新日時が一番新...
-
バッチコマンドでファイル名の...
-
【vbs】ファイル名の検索と該当...
-
ExcelVBAのDirでスペース含むフ...
-
word VBA ファイル名 保存
-
【DOSバッチ開発】末尾のタブの...
-
ファイル名を該当フォルダ内か...
-
ファイル名に ” を使うと エク...
-
ftp処理でmove(移動)を行いたい
-
Windowsコマンドプロンプトで、...
-
コマンドプロンプトでファイル...
-
テキストファイルのファイル名...
-
■ファイルのリネーム(rename)...
-
access,vbaでフォルダ内のファ...
-
バッチファイルで同一フォルダ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトの「%1」と...
-
[DOS] コピー先に同じファイル...
-
コマンドプロンプトでファイル...
-
コマンドプロンプトで変数が数...
-
バッチファイルで、iniファイル...
-
バッチコマンドでファイル名の...
-
ftp処理でmove(移動)を行いたい
-
フォルダ内の更新日時が一番新...
-
.batでファイル名から抽出して...
-
ExcelVBAのDirでスペース含むフ...
-
access,vbaでフォルダ内のファ...
-
DOSのバッチ作成について‐FORの...
-
R18文学賞はファイル名は自由で...
-
ファイル名に ” を使うと エク...
-
【vbs】ファイル名の検索と該当...
-
コマンドプロンプトまたはpower...
-
【Access】エクスポート時のフ...
-
Windowsコマンドプロンプトで、...
-
サブフォルダからファイルをコ...
-
ファイル名を該当フォルダ内か...
おすすめ情報