- ベストアンサー
VBAでテキストファイルを保存
VBAでテキストファイルを保存したいのですが、EUCで保存できません。 EUCで保存するにはどうしたらいいのでしょうか? Open myFile For Output As #myNo です。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
すみません。#2 で一部訂正します。 レイトバインディングなので WriteTextFile プロシージャの 変数宣言部辺りに、 Const adTypeText = 2 を追加して下さい。これがないとエラーになりますね...
その他の回答 (2)
- KenKen_SP
- ベストアンサー率62% (785/1258)
こんにちは。KenKen_SP です。 ADODB.Stream を使うと割と簡単です。エラートラップはしてませんが。 Option Explicit Sub Sample() Dim strText As String strText = "テキストを指定した文字コードでファイル書き出しテスト" Call WriteTextFile(strText, "C:\sample.txt", 3) ' 3: EUC-JP End Sub Sub WriteTextFile(ByVal strText As String, _ ByVal strFilepath As String, _ ByVal intCharset As Integer) Dim STM As Object ' ADODB.Stream Dim strCharset As String Select Case intCharset Case 2: strCharset = "iso-2022-jp" Case 3: strCharset = "EUC-JP" Case 4: strCharset = "UTF-8" Case Else strCharset = "Shift_JIS" End Select Set STM = CreateObject("ADODB.Stream") With STM .Open .Type = adTypeText .Charset = strCharset .WriteText strText .SaveToFile strFilepath .Close End With Set STM = Nothing End Sub
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
VBA で文字コードEUCで保存はできないと思います。 文字コードを変換するようなライブラリを使うか、 いったんシフトJISで普通にファイルを作成した後、 変換ツールを起動して変換するというような手順になるのではないかと思います。
お礼
ありがとうございました。 うまくいきました。 ただ、レイトはちょっと処理が遅いみたいですね。 アーリーでやってみました。 また、よろしくお願いします。