前提・実現したいこと
VBA初心者です。
エクセルファイルをcsvファイルへ出力・保存したいです。
・文字コードはutf-8
・bom無し
・文字化けなし
を目指しています。
何卒宜しくお願い申し上げます。
発生している問題・エラーメッセージ
コンパイルエラー: 変数が定義されていません
のエラーメッセージが出ます。
.LineSeparator = adLF
の部分で引っかかっている?ようです。
該当のソースコード
VBA
Option Explicit Sub writeCSV_utf8N() Dim ws As Worksheet Set ws = ThisWorkbook.Worksheets(1) Dim csvFile As String csvFile = ActiveWorkbook.Path & "\data_utf8.csv" 'ADODB.Streamオブジェクトを生成 Dim adoSt As Object Set adoSt = CreateObject("ADODB.Stream") Dim strLine As String Dim i As Long, j As Long i = 1 With adoSt .Charset = "UTF-8" .LineSeparator = adLF .Open Do While ws.Cells(i, 1).Value <> "" strLine = "" j = 1 Do While ws.Cells(i, j + 1).Value <> "" strLine = strLine & ws.Cells(i, j).Value & "," j = j + 1 Loop strLine = strLine & ws.Cells(i, j).Value .WriteText strLine, adWriteLine i = i + 1 Loop .Position = 0 'ストリームの位置を0にする .Type = adTypeBinary 'データの種類をバイナリデータに変更 .Position = 3 'ストリームの位置を3にする Dim byteData() As Byte '一時格納用 byteData = .Read 'ストリームの内容を一時格納用変数に保存 .Close '一旦ストリームを閉じる(リセット) .Open 'ストリームを開く .Write byteData 'ストリームに一時格納したデータを流し込む .SaveToFile csvFile, adSaveCreateOverWrite .Close End With MsgBox "csvに記載完了" End Sub
試したこと
色々ネットを検索してみたのですが、該当するエラーに対応する回答が見つからず、
困り果ててしまい、こちらで質問させていただきます。
補足情報(FW/ツールのバージョンなど)
Excel for Microsoft 365 を使用しています。
まだ回答がついていません
会員登録して回答してみよう