- 締切済み
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 バイト
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- mt2008
- ベストアンサー率52% (885/1701)
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