ここから本文です

VBAで、文字コードをutf-8で出力する方法はありますか?

cru********さん

2012/4/2815:39:44

VBAで、文字コードをutf-8で出力する方法はありますか?

現在、以下のようなコードでHTMLファイルの大量作成を行うエクセルを作成しています。
このコードで書き出しをしますと、強制的に文字コードがShift_Jisになるようで、サイトでutf-8を使用できないのです。
これをutf-8形式で書きだす方法はありますか?
検索するとadodb streamなど出てきたのですが、初心者に毛が生えた程度の知識しかなく、それをどうこのコードに組み込んでいいのかわかりません。
もしよろしければご教授いただけるとうれしいです。


Dim n As Integer 'サイトのID
Dim r As Integer 'HTMLタグの行数
Dim x As Integer 'HTMLタグの行数
For n = Cells(1, 4).Value To Cells(2, 4).Value 'サイトのIDのここからここまで
Cells(1, 2) = n
If Cells(3, 35) <> "" Then
Open "出力ディレクトリ" & "\" & Cells(3, 34) & "\" & Cells(3, 28) & ".html" For Output As #1
For r = 4 To 269
Print #1, Cells(r, 24)
Next r
Close #1
End If
Next n
End Sub

補足上記のコードに対してのADODB.Streamの組み込み方がわからないので、ご教授いただけませんでしょうか。
Open~Closeではいけないのでしょうかね・・・。

閲覧数:
10,695
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

hat********さん

編集あり2012/4/2820:59:05

ADODB.Streamを使うようです。

http://d.hatena.ne.jp/niemands/20090316/1237225383

えー、ほとんど一緒じゃないですか
Dim n As Integer 'サイトのID
Dim r As Integer 'HTMLタグの行数
Dim x As Integer 'HTMLタグの行数
Dim txt As Object ' 出力内容
Set txt = CreateObject("ADODB.Stream")
txt.Charset = "UTF-8"

For n = Cells(1, 4).Value To Cells(2, 4).Value 'サイトのIDのここからここまで
Cells(1, 2) = n
If Cells(3, 35) <> "" Then
txt.Open
For r = 4 To 269
txt.writetext Cells(r, 24), adWriteLine
Next r
txt.savetofile ("出力ディレクトリ" & "\" & Cells(3, 34) & "\" & Cells(3, 28) & ".html"), adSaveCreateOverWrite
txt.Close
End If
Next n
End Sub

試していないけどたぶん、こんな感じです;。

質問した人からのコメント

2012/4/30 15:18:42

笑う Print以外の出力方法がわからなかったので・・・^^;
ありがとうございました。

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる