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

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

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

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

Q&A

解決済

3回答

1718閲覧

for テキスト書き込み

coko1

総合スコア276

VBA

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

0グッド

0クリップ

投稿2016/11/09 03:20

編集2016/11/09 03:24

Set sr = CreateObject("ADODB.Stream")
sr.Charset = "UTF-8"
sr.Open
For i = 0 To UBound(Arr)
sr.WriteText Arr(i), 1
Next
sr.SaveToFile TEXTFILE, 2
sr.Close

上記のようなコードでテキストファイルを作成しているのですが、for文の中の処理で’アプリケーション定義またはオブジェクト定義のエラーです’と表示されてしまいました。
for文の中で配列に格納してある情報をテキストに書き込んでいきたいのですが、どのようにしたらできるのでしょうか?

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

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

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

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

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

guest

回答3

0

自己解決

配列に空文字が入っているとエラーになるみたいです。自己解決しました。ありがとうございました。

投稿2016/11/09 05:45

coko1

総合スコア276

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

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

0

配列Arrが突然出てくるように思えるのですが、これはどこかで定義していますでしょうか?
また、Arrが定義されているようなら以下をチェックしてはどうでしょうか。
・Arrの要素番号の最小値
・Arrの要素番号の最大値
・UBound(Arr)の値

投稿2016/11/09 05:55

ynakano

総合スコア1894

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

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

0

sr.Openの前に ModeとTypeを指定してください。

VBScript

1sr.Mode = 3 '書き込みモード 2sr.Type = 2 'テキストデータ

###追記:空文字列でも出力できますよ。
さすがにNull値ではエラーが出ます。

VBScript

1Set sr = CreateObject("ADODB.Stream") 2dim Arr(2) 3Arr(0)="line 0" 4Arr(1)="" 5Arr(2)="line 2" 6 7WScript.StdOut.WriteLine "--start--" 8 9with sr 10 .Charset = "UTF-8" 11 .Mode = 3 '書き込みモード 12 .Type = 2 'テキストデータ 13 .Open 14 15 For i = 0 To UBound(Arr) 16 WScript.StdOut.WriteLine Arr(i) 17 .WriteText Arr(i), 1 18 Next 19 .SaveToFile "d:\\temp\\out.txt", 2 20 .Close 21End With 22WScript.StdOut.WriteLine "--end--"

出力はBOM付きUTF-8になります。

D:\temp>cscript //B foo.vbs
--start--
line 0

line 2
--end--
D:\temp>type out.txt
・ソline 0

line 2

投稿2016/11/09 03:37

編集2016/11/09 06:45
Y.H.

総合スコア7914

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

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

coko1

2016/11/09 05:23

同様のエラーが表示されます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問