Excel VBでのデータの取り込み方
Excel VBを使って、デスクトップにあるcsv形式のデータを取り込むマクロを作りました(「マクロの記録」にて)。データは10個あるので、同じようなマクロを10個作っています。
そこで、取り込むcsvのファイル名ですが、01.csv、02.csv、…、10.csvという名前になるように1つ1つ名前の変更をしてから取り込んでいます。
これをもとのファイル名のままで、番号の若いもの順から取り込むということは出来ないでしょうか。
元のファイル名は「1002.csv」「1234.csv」「3456.csv」などと「(4ケタの数字).csv」です。
今、使っているVBは以下の通りです(長くてすみません)。
どうぞよろしくお願いいたします。
------------------------------------------------------------------------
Sub data01取り込み()
'
' data01取り込み Macro
'
'
Sheets("data1").Select
Range("A1").Select
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Users\user\Desktop\データ\01.csv", Destination:=Range("$A$1"))
.Name = "cell1"
.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 = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Range("E2:E400").Select
Selection.Copy
Sheets("計算").Select
ActiveWindow.SmallScroll Down:=-16
Range("e4").Select
ActiveSheet.Paste
End Sub
----------------------------------------------------------------
お礼
こんばんは。 説明不足にもかかわらず、お返事ありがとうございます。 対象のオフコンのデータはcobolで作成されていて、txt形式(固定長ではない)で保存されています。 教えて頂いたURLを参考にさせていただきもうすこしがんばってみようと思います。 ありがとうございました。