|
■No95442 (悩み中 さん) に返信 > vb6のstringについて256文字以上連結 > Dim str as String > Dim intloop as Integer > For intloop=0 TO 19 > str=str+"work joint“+intloop > Next intloop
大文字小文字の崩れ、全角半角の記述ミス、本来補完されるべき空白の欠如などがあるので、 どうみても「実際のコード」とは別物ですよね、これ。
変数 str というのも、Str 関数と競合するので非推奨だったりします。 まぁ、str は予約語では無い(Conversion.Str と書けば区別できる)ので、まぁそれは良いとして…。
> str=str+"work joint“+intloop
という式は、VB6 だと str = CStr(CDbl(str & "work joint") + CDbl(intloop)) に相当するものとして処理されます。
しかし CDbl("work joint") という数値変換は行えないため、 実行時エラー '13': 型が一致しません。 が出てしまうはずです。実際のコードを、正確に記述してみてください。
■No95460 (悩み中 さん) に返信 > str=str+"work joint“ & Cstr(intloop)
これでも間違いでは無いですが、普通は str = str & "work joint" & CStr(intloop) もしくは str = str & ("work joint" & CStr(intloop)) です。個人的には後者推奨。
> 途中で途切れてしまいます。
ループ終了後、合計何文字になったか、 MsgBox Len(str) の実行結果を教えて頂けますか? For intloop = 0 To 19 であれば、おそらく「230」になるはず…。
実際のコードが、質問内容とは実際には異なっているのであれば、下記の点に注意してみてください。
可能性1) 変数 str 内に vbNullChar が含まれていて、それを MsgBox や TextBox で 表示しているため、vbNullChar 以降の文字が出力されていない。
可能性2) 変数 str の文字列が長すぎて(たとえば、半角1023文字を超えていた場合など)、 Debug.Print 等で表示しきれず、折り返されて改行表示されてしまっている。
可能性3) 変数 str の内容を、外部ファイルやデータベース等に出力しようとしているが、 出力先の領域に十分な長さが無く、途中で打ち切られてしまっている。
|