CSV編集マクロ作成 | 備忘録 (。・_・。)ノ
先週末、お客様から「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