質問するログイン新規登録

Q&A

2回答

1334閲覧

VBAのUFT-8の変換がうまくいかない

tamu_rin

総合スコア1

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2021/09/01 02:14

編集2021/09/01 02:33

0

0

外部から表を参照しCSVにてDB用のデータを作成しています。
ネットで調べて出てきたコードを書き加えても中身が入っていないCSVしか保存されません。わかる方ご教授お願いいたします。

VBA

1Sub writeCSV_utf8N() 2 3Dim ws As Worksheet 4Set ws = ThisWorkbook.Worksheets(1) 5 6Dim csvFile As String 7csvFile = ActiveWorkbook.Path & "\data_utf8.csv" 8 9'ADODB.Streamオブジェクトを生成 10Dim adoSt As Object 11Set adoSt = CreateObject("ADODB.Stream") 12 13Dim strLine As String 14Dim i As Long, j As Long 15i = 1 16 17With adoSt 18 .Charset = "UTF-8" 19 .LineSeparator = adLF 20 .Open 21 22 Do While ws.Cells(i, 1).Value <> "" 23 24 strLine = "" 25 26 j = 1 27 Do While ws.Cells(i, j + 1).Value <> "" 28 29 strLine = strLine & ws.Cells(i, j).Value & "," 30 j = j + 1 31 32 Loop 33 34 strLine = strLine & ws.Cells(i, j).Value 35 36 .WriteText strLine, adWriteLine 37 38 i = i + 1 39 40 Loop 41 42 .Position = 0 'ストリームの位置を0にする 43 .Type = adTypeBinary 'データの種類をバイナリデータに変更 44 .Position = 3 'ストリームの位置を3にする 45 46 Dim byteData() As Byte '一時格納用 47 byteData = .Read 'ストリームの内容を一時格納用変数に保存 48 .Close '一旦ストリームを閉じる(リセット) 49 50 .Open 'ストリームを開く 51 .Write byteData 'ストリームに一時格納したデータを流し込む 52 .SaveToFile csvFile, adSaveCreateOverWrite 53 .Close 54 55End With 56 57End Sub

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

otn

2021/09/01 02:30

1行に複数文が入ってますが、これは改行がおかしい(コピペミス)?あるいは区切りの : が抜けている? あるいは、本当にこのコードを実行している??
guest

回答2

0

.WriteText strLine, adWriteLineが一度も実行されていないと言うことなので、
Cells(1,1)が空なのでは?

投稿2021/09/01 03:08

otn

総合スコア86505

0

提示頂いたコードで、CSVファイルは作成されているのでしょうか?
無駄な処理も多いように見受けられます。

以下を参考にしてみてください。
https://excelwork.info/excel/adodbstream/

投稿2021/09/01 02:40

hex309

総合スコア761

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.29%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問