2017-04-19 16 views
0

ユーザーが複数行テキストの本文を入力するVBA(単語)上にユーザーフォームを作成しました。 TextBox1に挿入します。私はこれを1行の文字列に変換したい。私は、次の試してみました:複数の行の文字列をユーザーフォームのテキストボックスから1行の入力文字列(vba word)に変換する方法

'Replace method 
TextBox1.Text = TextBox1.Text.Replace what:=vbFl replacement:="" 

これは、これはエラーを生成しませんが、必要な変換を行っていないの.text

'Replace function 
TextBox1.Text = Replace(TextBox1.Text, vbLf, "") 

に関して「無効な修飾子」になります。

+0

2回目の試行で正しい構文が得られますが、エラーは発生しませんが、vbLfは長い文字列ではないため、何も見つかりませんVBAはおそらく数字を文字列に変換しますが、それはあなたが探している数字ではありません。私の頭の上から、TextBoxがどの文字列を使用しているのか分かりません。それはChr(10)かChr(11)かChr(10)&Chr(13)かその逆です。これは 'What:= Chr(11)'のように入力できます。 – Variatus

+0

@Variatus 'vbLF'は間違いなく文字列です。これは、このコンテキストで使用する正しい文字列ではありません。:)(希望する場合は、イミディエイトウィンドウで '?TypeName(vbLF)'を試してください) –

+0

ありがとう@David Zemens。見た目は欺くことができます:-) – Variatus

答えて

1

Wordでは、キャリッジリターンも考慮する必要があります。

'Replace function 
TextBox1.Text = Replace(TextBox1.Text, vbCr + vbLf, "") 
TextBox1.Text = Replace(TextBox1.Text, Chr(10) + Chr(13), "") 
TextBox1.Text = Replace(TextBox1.Text, vbCrLf, "") 
関連する問題