csvに、"0から始まる数字"や"文字列"、"0以外の数字"が入り混じっているとき。
0から始まる数字を表示させたいです。
下記のコードで取り込み、保存した後にメモ帳で確認すると0から始まる数字の"0"が消えてしまいます。
Format関数を使用するにも値が定まっていないので、使用できないです。
こういった場合の対応方法をご教示いただければ幸いです。
ws.Cells(l, 3).NumberFormatLocal = "@"
VBA
1Sub Shiftjis() 2 3 Dim selectFileName As Variant 4 Dim ws As Worksheet 5 Set ws = ThisWorkbook.Worksheets("Sheet1") 6 7 '//ダイアログを開く 8 ws.Cells.Clear '//ファイルクリア 9 selectFileName = Application.GetOpenFilename(FileFilter:="CSVファイル(*.csv),*.csv", _ 10 Title:="CSVファイルの選択") 11 If selectFileName = False Then 12 Exit Sub 13 End If 14 15 With ws.QueryTables.Add(Connection:="text;" & selectFileName, Destination:=ThisWorkbook.Worksheets("Sheet1").Range("A1")) 16 .TextFilePlatform = 65001 '//UTF8に設定 17 .AdjustColumnWidth = False '//列の幅を自動計算しない 18 .TextFileCommaDelimiter = True '//コンマ区切り 19 .Refresh BackgroundQuery:=False '//シートに出力 20 .Delete 21 End With 22 DoEvents 23 24'//使用セルの最終行を取得 25 Dim fin_line As Long, l 26 With ws.UsedRange 27 fin_line = .Rows(.Rows.Count).Row 28 End With 29 For l = 2 To fin_line 30 31'//処理(Sheet2のセルの値を書き込む) 32 ws.Cells(l, 2).NumberFormatLocal = "@" 33 ws1.Cells(l, 2).Value = "'" & Format("0", "000") 34 35'//保存するブックの名前を作成 36 ws1.Copy 37 a = Format(Now(), "yyyymmdd-hhmm") '日時 38 B = ThisWorkbook.Path & "\" & filename1 & a & ".csv" 39 40 '//新しく作成したブックを名前を付けて保存 41 ActiveWorkbook.SaveAs filename:=B, FileFormat:=xlCSV 42 ActiveWorkbook.Close 43 44 45End Sub
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。