web-dev-qa-db-ja.com

バリアント配列を文字列に変換する

データに対して分割関数を実行できるように、バリアント変数を取得して文字列に変換しようとしています。ただし、バリアントを再定義しようとすると、タイプの不一致エラーが発生します。 CStr()、Str()、およびToString関数を使用しました。動作しません。

足りないものはありますか?

Function FlatLine(ByVal lines As Variant)

Dim flat() As String
ReDim Preserve flat(i)

For i = 0 To UBound(lines)
    flat(UBound(flat)) = lines(i)
    ReDim Preserve flat(LBound(flat) To UBound(flat) + 1)
Next i

Dim flat2 as String
flat2 = Cstr(flat)

^ errors there.
7
user3428722

私が見る限り、forは役に立たない。より良いReDimフラットと以下のようにflat2を生成します

ReDim flat(UBound(lines))
flat2 = Join(flat,"|")

実際、ラインがByValとして入ってくることを考えると、おそらく

flat2 = Join(lines,"|")
6
bugmagnet