#578 | UTF-8形式でテキストファイルに出力するには? | VBA | |
通常のVBAによるテキストファイルへのデータ出力(Print命令など)では、キャラクタコードを指定するパラメータなどはなく、Shift-JIS形式になります。一方、ADOの「Streamオブジェクト」を利用すると、UTF-8形式でテキストファイルにデータを出力することができます。 次の例では、データベース内にある「仕入先」テーブルの全レコードのデータをカンマ区切りの形式で組み立てたあと、Streamオブジェクトの各プロパティやメソッドを利用して、仕入先.csvというファイル名のUTF-8形式のテキストファイルとして保存しています。 Dim cnn As New ADODB.Connection Dim rst As New ADODB.Recordset Dim strm As New ADODB.Stream Dim strData As String Set cnn = CurrentProject.Connection 'テーブルのデータをstrDataに組み立て With rst .Open "仕入先", cnn, adOpenForwardOnly, adLockReadOnly, adCmdTable Do Until .EOF strData = strData & !ID & "," & !会社名 & "," & !姓 & "," & !名 & "," & _ !部署 & "," & !会社電話番号 & "," & !備考 & vbCrLf .MoveNext Loop .Close: Set rst = Nothing End With cnn.Close: Set cnn = Nothing '組み立てたデータをテキストファイルに出力 With strm 'キャラクタコードを設定 .Charset = "UTF-8" 'Streamオブジェクトを開く .Open '変数strDataの内容をStreamオブジェクトに書き込み .WriteText strData 'Streamオブジェクトの内容をテキストファイルに保存(既存ファイルは上書き) .SaveToFile "C:\DATA\仕入先.csv", adSaveCreateOverWrite .Close: Set strm = Nothing End With |
|||
|
Copyright © T'sWare All rights reserved |