質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.35%
VBA

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

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

解決済

2回答

4889閲覧

【Excel VBA】データ読み込み→UTF8かつ改行コードLFで出力

MK-3108

総合スコア6

VBA

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

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

0クリップ

投稿2021/06/29 06:59

ADODB.Streamを使ったファイル入出力です。

VBA

1Set ado = CreateObject(“ADODB.Stream”) 2ado.open 3ado.Charger = “UTF-8” 4ado.LineSeparator = adLF

などと定義した後…
rng に、Variant型で、シートと範囲を指定します。
ここまではなんとかなっていて…

VBA

1ado. WriteText rng 2ado.SaveToFille outFileName

でエラーがでます。

outFileName、出力先はフルパス(パス部分は変化、ファイル名はセルの値で指定)のため、その時々で変化するので定数ではないです。今はString型で定義してます。

いきづまっています。
改善点等を教えてください

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

希望されることは、この様な内容でしょうか?
UTF8/LF改行で作成されました。
尚、参照設定でADOオブジェクトを追加しないと定義部エラーになります。
また、定義後にOption Explicitで、コーディングミスも少なくなります。

VBA

1Sub Test_Sample_Miniature() 2 3 Dim outFileName As String 4 Dim ado As ADODB.Stream 5 Dim Rng As String 6 7 outFileName = ThisWorkbook.Path & "\OutUTF8.txt" 8 9 Set ado = CreateObject("ADODB.Stream") 10 ado.Charset = "UTF-8" 11 ado.LineSeparator = adLF 12 ado.Open 13 14 ado.WriteText "123456789", adWriteLine 15 ado.WriteText "abcabcabc", adWriteLine 16 ado.WriteText "あいうえお", adWriteLine 17 'ado. WriteText rng 18 ado.SaveToFile outFileName 19 20End Sub

rngは適当な文字列をセットされるのでしょうか?

投稿2021/06/30 00:59

編集2021/06/30 01:01
tosi

総合スコア553

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

とりあえず、

VBA

1' ado.Charger = “UTF-8” 2 ado.Charset = "UTF-8" 3 4 5' ado.SaveToFille outFileName 6 ado.SaveToFile outFileName 7

は気になるとして、 rng の中身が気になります。
Variant型といいつつ実質がRange型なのだとしたら、
今の書き方だと成立しないと思います。

投稿2021/06/29 07:15

jinoji

総合スコア4592

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MK-3108

2021/06/29 07:35

スペルミスごめんなさい。 実は、Range型だとしたら、どのように書けば成立するのでしょうか?
jinoji

2021/06/29 07:42 編集

ado.WriteText WorksheetFunction.TextJoin("", False, rng) とかですかね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問