|
▼たつのこ さん:
こんにちは〜
こういうのは、[データ]-[外部データの取り込み]-
[テキストファイルのインポート]メニュ−を使って指定のシートに
インポートされることをお勧めします。
ht tp://office.microsoft.com/ja-jp/excel/HP101022441041.aspx
以下は、あるCSVファイルをActiveSheetにインポートしたときの記録です。
(すこし編集してあります)
> Worksheets("download.csv").Activate
> Worksheets("download.csv").Columns("A:AX").NumberFormat = "@"
のあとに、以下のようなマクロ記録を適当に編集したものを書いておけば、
""の処理、改行コードの判別処理は不要になります。(改行コードが vbLf
だけのテキストファイルでもちゃんと読み込めます)
Sub Macro2()
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & fname, Destination:=Range("A2"))
> ' ↑CSVファイルfname をActiveSheetの[A2]セル以降にインポートします
.Name = "F_Data"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 932
> ' ↑文字コードはShift-JIS です
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
> ' ↑ダブルクート内を文字列データとします。データの前後の引用符は _
自動的に削除してインポートされます
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2)
>' 列のデータ形式をすべて文字列としています
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
.Delete
>' ↑読み込みRefreshが終わったらもとのCSVファイルとの接続を切断します
End With
End Sub
|
|