フォルダの中から作成日時を指定しファイルを開き、データ取得して閉じます。数千個の中から百個を開くイメージです。FSOを使用してますが、ファイル名タイムスタンプの取得は結構時間がかかり、1ファイル当たりコンマ数秒、全部集めると結構な時間になります。
DOSコマンドでDirなら全部でコンマ数秒のイメージがあるので、こちらに変更しようと考えてます。問題は手順です。
①シートにDOSコマンドを書き並べる
②バッチファイルに書き込み
③プロセスIDを取得し終了監視しつつ実行
④結果の入ったファイルをエクセルに読み込み、ファイル名とタイムスタンプ取得
⑤タイムスタンプからをファイルを選び、開く
無理とは言いません、全部心あたりはあります。が、私には少々道のり遠いです、特に③あたり。
もうちょっと簡単で速い方法はないでしょうか?
無ければ諦めて気合入れて上記でやります。
No.1ベストアンサー
- 回答日時:
指定したフォルダの下にあるファイル名とそのタイムスタンプを取得できれば良いのですよね。
サブフォルダを無視して良いなら、こんなのはいかがでしょうか。
このサンプルプログラムは、"C:\Users\xxxx\Documents\"フォルダ内のファイル名をDir関数で順次取得し、さらに、FileDateTime関数でタイムスタンプを取得。それを Debug.Print しています。
Sub test()
Dim MyPathName As String
Dim MyFileName As String
Dim MyTimeStamp As String
Dim cnt As Long
MyPathName = "C:\Users\takashi\Documents\教えてGoo - コピー\"
MyFileName = Dir(MyPathName & "*.*")
Do While MyFileName <> ""
cnt = cnt + 1
MyTimeStamp = FileDateTime(MyPathName & MyFileName)
Debug.Print MyTimeStamp & " " & MyFileName
MyFileName = Dir
Loop
MsgBox cnt
End Sub
ありがとうございます。
下記URLによるとFSOの半分の時間で出来る様ですね。
http://tsware.jp/labo/labo_25.htm
まだ確認が取れてませんが、取り合えず御礼まで。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Excel(エクセル) 【マクロ】同じフォルダ内にある複数ブックから1つのブック内の1シートにデータを集めたい 6 2022/09/28 18:16
- Visual Basic(VBA) シートをコピーする下記記述でダイアログを用いた記述がわかりません?( A = Dir(ThisWor 4 2022/08/22 12:26
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- その他(OS) DOSコマンド『dir』の『/o』オプション 3 2023/03/10 09:29
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
デスクトップの画像をhtmlに表...
-
ファイル名と同名のフォルダを...
-
フォルダにリンクを貼りたい
-
【VBS】古い日付のフォルダを削...
-
VBA 最新のフォルダ取得
-
VBA フォルダ名に特定の文字を...
-
exeと同じ階層にフォルダを配置...
-
ExcelVBAでフォルダへのハイパ...
-
VB.NRT FolderBrowserDialogを...
-
META-INFフォルダの置き場所に...
-
多量のファイルをフォルダに自...
-
GetAttrが原因?
-
Windows10でコマンドプロンプト...
-
ツリービューを使って、エクス...
-
ディレクトリ名変更してコピー...
-
条件に合うフォルダが存在する...
-
VBAでフォルダ指定
-
エクセルVBA ファイル名とタイ...
-
VBScriptでのフォルダ指定ダイ...
-
あるフォルダーのファイルを違...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
VBA 最新のフォルダ取得
-
バッチファイルが保存されてい...
-
ファイル名と同名のフォルダを...
-
【マクロ】ファイル名の日付に...
-
VBA フォルダ名に特定の文字を...
-
デスクトップの画像をhtmlに表...
-
フォルダ内のPDFファイル名を変...
-
ディレクトリ名変更してコピー...
-
多量のファイルをフォルダに自...
-
Excelで指定したフォルダに保存...
-
Access VBA で フォルダ権限...
-
C ファイル出力で、フォルダが...
-
Excelのハイパーリンクについて...
-
あるフォルダーのファイルを違...
-
パス名に2バイト文字(マルチバ...
-
同一フォルダ内の別ブックから...
-
エクセルのマクロについて教え...
-
バッチファイルで指定フォルダ...
-
ExcelのVBAでフォルダ指定がで...
おすすめ情報
40分程度かかつてたのが15分になりました。