• 締切済み

dir /a-d/sからほしいデータだけを抽出

dir /a-d/s >test.txtで保存したデータから下記の情報だけエクセルに表示するためには どうようなVBを作ればよろしいのでしょうか。 yyyy/mm/dd(A列) hh:mm(B列) ファイルサイズ(C列) ファイル名(D列) C:\Users\AA\BBB\Local のディレクトリ 2013/04/15 22:08 36 AAAAA.jpg 2013/05/27 23:59 50,849 BBBBB.jpg 2 個のファイル 50,885 バイト C:\Users\AA\BBB\CCCl\DD\EEE\ASD のディレクトリ 2013/04/21 21:46 70,195 123.lst 2013/04/21 21:46 163,659 10.lst 2013/04/21 21:46 123,818 Fnt10.lst 2013/05/27 23:53 3,072 Events 2013/04/21 21:55 75,803 1.bin 5 個のファイル 436,547 バイト

みんなの回答

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

VBではなく、ExcelVBAですが、こんな感じで作ってみました。 ポイントは、Dirで作ったテキストには項目の区切りに連続した複数の空白が入るので、ワークシート関数のTrimを使って1つの空白にしてからSplit関数で分割したところです。 Sub Sample()   Dim nFF As Integer   Dim sLine As String   Dim sData   Dim nRow As Long   nFF = FreeFile   Open "C:\Temp\test.txt" For Input As #nFF   nRow = 1   Do While Not EOF(1)     Line Input #nFF, sLine 'CSVを1行取り込む     sLine = WorksheetFunction.Trim(sLine) 'ワークシート関数のTrimを使って連続する空白を1つにする     sData = Split(sLine & " ", " ") 'NULLの時ように1つだけ空白を付けて空白でSplit     '分割した1つ目が日付の場合、シートに貼り付ける     If IsDate(sData(0)) = True Then       Range(Cells(nRow, 1), Cells(nRow, UBound(sData))) = sData       nRow = nRow + 1     End If   Loop   Close #nFF End Sub

関連するQ&A