先週末、お客様から「CSVをエクセルで開けるとゼロサプレスされる」と問い合わせがった。
ってことで土曜日、CSV編集マクロ2003.xlsを作成しました。自宅のOfficeが2003のため。
汎用的に使えるマクロとして作成しました。
休み明けお昼休みに、会社でCSV編集マクロ2013.xlsを作成します。
お客様に無償で提供するか、作成代を頂いて提供するか
エクセルのテクニックがあればマクロなどなくても可能なのですが…
自宅でOfficeが2013が使えれば…
「会社のPCを持って帰れ!」って声が聞こえてきそうですが^^;
■ソース一部公開
CSVの読込高速化対応
With ActiveSheet.QueryTables.Add(Connection:="text;" & strCsvFile, Destination:=Range("A1"))
.Name = "linkName"
.TextFileCommaDelimiter = True
.TextFilePlatform = 932
.TextFileColumnDataTypes = getColTyp() '←ここが汎用対応のポイント
.Refresh
End With
Call clsAllNames
CSVの保存 ↓汎用対応のポイント
Set UsedCell = ActiveSheet.UsedRange
lonStartRow = UsedCell.Cells(1).Row
lonStartCol = UsedCell.Cells(1).Column
lonMaxRow = UsedCell.Cells(UsedCell.Count).Row
lonMaxCol = UsedCell.Cells(UsedCell.Count).Column
For lonRowCnt = lonStartRow To lonMaxRow
For lonColCnt = lonStartCol To lonMaxCol - 1
Write #lonFile, Cells(lonRowCnt, lonColCnt);
Next
Write #lonFile, Cells(lonRowCnt, lonMaxCol)
Next
Set UsedCell = Nothing