ひとり勉強ログ

ITエンジニアの勉強したことメモ

【VBA】VBAでCSVデータをエクセルにインポートする

VBA を使用して CSV データをエクセルにインポートする。

インポートするCSVデータ

姓,名,生年月日,電話番号
田野,実,1996/7/13,08080178277
広沢,富夫,1961/7/29,09049538001
柿原,彩華,1956/6/10,08004909376
越田,育男,1993/4/22,09034977567
金,朱里,2012/8/24,09044098872
上川,朱音,2013/12/16,08017226344
江田,奈保子,1972/4/13,08029511515
日野,博,1997/5/21,08000061768
野沢,昭吾,2004/3/4,08002064324
喜田,美菜,1973/8/23,09003432471

文字コードShift_jis、改行コードは CR+LF。

3列目の生年月日は日付型、4列目の電話番号は先頭の「0」が欠けないよう文字型でインポートする。

VBAのコード

Sub Import()
  Dim buf As String, tmp As Variant, n As Long

  Open "csvのファイルパス" For Input As #1
  Line Input #1, buf
  Do Until EOF(1)
    Line Input #1, buf
    tmp = Split(buf, ",")
    n = n + 1
    Cells(n, 1).Value = tmp(0)
    Cells(n, 2).Value = tmp(1)
    Cells(n, 3).Value = DateValue(tmp(2))
    With Cells(n, 4)
      .NumberFormat = "@"
      .Value = tmp(3)
    End With
    Loop
  Close #1
End Sub