テキストファイル→エクセル書き出し 

テキストファイルの内容をエクセルに書き出す

テキストファイルの文字コードを判定できる。

'テキストファイル→エクセル書き出し
Sub writeFromTextToExcel()

    Const FILE_PATH = "ここにファイルのフルパスを指定する"
    
    Dim judgedCharSet As String: judgedCharSet = judgeFileCharSet(FILE_PATH)
    Dim charSet As String
    
    If judgedCharSet = "UTF8" Then
        charSet = "UTF-8"
    ElseIf judgedCharSet = "SJIS" Then
        charSet = "SHIFT-JIS"
    End If

    Dim stream As Object
    Dim text As String
    
    Set stream = CreateObject("ADODB.Stream")
    stream.charSet = charSet
    stream.Open
    stream.LoadFromFile FILE_PATH
    text = stream.ReadText
    stream.Close
    
    Dim lfSplitArray As Variant
    Dim writeLine As Integer: writeLine = 1
    
    'ファイル内容を改行コードで配列化
    lfSplitArray = Split(text, vbLf)
    For i = LBound(lfSplitArray) To UBound(lfSplitArray)
        Debug.Print i
        Cells(writeLine, 1) = lfSplitArray(i)
        writeLine = writeLine + 1
    Next
End Sub

「judgeFileCharSet」は以下を参照。

関連記事:テキスト系ファイル文字コード判定

指定されたテキストファイルの中身を取得する

これも一応載せておきます。

'#指定されたファイルの中身を取得する
Function getFileText(fullPath As String)
    '文字コード判定
    Dim charset As String: charset = judgeFileCharSet(fullPath)
    If charset = "UTF8" Then
        charset = "UTF-8"
    ElseIf charset = "SJIS" Then
        charset = "SHIFT-JIS"
    End If
    
    With CreateObject("ADODB.Stream")
        .charset = charset
        .Open
        .LoadFromFile fullPath
        '戻り値
        getFileText = .ReadText
        .Close
    End With
End Function


コメント