|
・「外部データの取り込み」 - 「テキストファイル」を利用してみました。
・読み込む列の数は3つと仮定しました。
前提の違うところがあれば、テキトーに修正してください。
あくまでも参考コードということで、読み解いてみてください。
Sub test()
Const folderName As String = "D:\MyDocuments\201408\test\"
'■修正してください。尻尾の\に注意
Dim ws As Worksheet
Dim rng As Range
Dim lastRow As Long
Dim k As Long
For k = 1 To 2 '■ファイルはテスト的に1.txt から 2.txtまでとしています。
Sheets("ベースシート").Copy After:=Sheets(Sheets.Count)
Set ws = ActiveSheet
ws.Name = CStr(k)
' テキストファイルをA2の位置に読み込む
With ws.QueryTables.Add(Connection:= _
"TEXT;" & folderName & CStr(k) & ".txt", _
Destination:=ws.Range("$A$2"))
.Name = CStr(k)
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 932
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = True
.TextFileColumnDataTypes = Array(1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
'A2からC列の最終行までを対象に、C列で昇順にソート
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
Set rng = ws.Range("A2", ws.Cells(lastRow, 3))
With ws.Sort
.SortFields.Clear
.SortFields.Add Key:=Range("C2"), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortNormal
.SetRange rng
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Next
End Sub
|
|