###前提・実現したいこと
UTF8コードのCSVファイルを読み込み、配列にいれたいです。
その際、1行目はヘッダーなので、読み飛ばし、1行ずつ読み取り
配列にいれたいのですが、文字コードがUTF8となるとInputLineが使用できず
下記のようなコードを記載してみましたが
目的の処理をこの後どのように記載すればよいか困っています。
###発生している問題・エラーメッセージ
・CSVファイルの1行目を読み取らない処理が分からない
・CSVファイルを配列に入れる方法が分からない
※1行ずついれて、このあとループ処理でテンプレートに出力する処理を追加したいと考えています。
###該当のソースコード
Private Sub printCSV()
Dim buffer As String ' 一時的に文字列を格納
Dim Stream As Object
Dim fol_path As String
fol_path = ThisWorkbook.Path
fol_path = fol_path & "" & Format(Now, "yyyymmddhhmmss")
If Dir(fol_path, vbDirectory) = "" Then
MkDir fol_path
Debug.Print fol_path
End If
Dim fType, prompt As String Dim fPath As Variant Dim ws As Worksheet Set ws = Worksheets("CSV選択") '選択できるファイルの種類をxlsに限定 fType = "CSVファイル (*.csv),*.csv" 'ダイアログのタイトルを指定 prompt = "CSVファイルを選択して下さい" 'ファイル参照ダイアログの表示 fPath = Application.GetOpenFilename(fType, , prompt) Debug.Print fPath
' VB標準のADODB.Streamオブジェクトを作成する
Set Stream = CreateObject("ADODB.Stream")
' ストリームの文字コードをUTF8に設定する
Stream.Charset = "UTF-8"
' ファイルのタイプ(1:バイナリ 2:テキスト)
Stream.Type = 2
' ストリームを開く
Stream.Open
' ストリームにファイルを読み込む
Stream.LoadFromFile fPath
' ファイルの中身をbufferへ代入
buffer = Stream.ReadText
' ストリームを閉じる
Stream.Close
' イミディエイトへ出力
Debug.Print buffer
Dim myArray() As String
myArray = Split(buffer, ",") '---(1)
Debug.Print myArray(52)
'Set Stream = Nothing
End Sub

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。