2017-07-25 13 views
0

私は、テキストボックスA、B、Cを含むフォーム(たとえば)データを持っています。msフォームフィールドを文字列に変換するvba

フォームデータに基づいて電子メールを書きたいと思います。私電子メールの本文で、私は次の形式をしたい:

Aは次のとおりです。(フォームのテキストボックスに、Aの実際の値)(改行) Bは次のとおりです。で、テキストボックス内のBの((実際の値フォームのテキストボックス内のCの実際の値)

Forms!Data!A_value(私はA_valueとしてボックス名を付けたものとします)

私は以下を試しました:

01私は文字列に組み合わせて改行を追加することはできません。

&の結果をどこかに改行しているのですが。

しかし、私がそれを行うと、コード全体として連結され、フォームフィールドから値が取得されません。私は、行継続文字を使用して、3行にそのコードを書いたという事実は、とは何の関係もありません:

Dim body as String 

body = "A is : " & Forms!Data!A_value & vbNewLine & _ 
     "B is : " & Forms!Data!B_value & vbNewLine & _ 
     "C is : " & Forms!Data!C_value 

注:

答えて

1

あなたはおそらくのような何かをしたい事前に ありがとう: オプションを提案して下さい改行文字を出力に挿入する。

body = "A is : " & Forms!Data!A_value & vbNewLine & "B is : " & Forms!Data!B_value & vbNewLine & "C is : " & Forms!Data!C_value 

と書かれているかもしれませんが、読むのは難しいです。

+0

ありがとうございます!それはかなりうまくいった。 vbNewLineについて知りませんでした。 :) – munnahbaba

1

アンパサンドは、テキスト"hello " & "there"を連結するために使用されます。

アンパサンドを引用すると、何もしません。アンパサンド"bits & bobs"を再生するだけです。

改行文字("time for " & vbCrLf & "a break")を追加(連結)するには、文字vbCrLf(改行/改行)を使用できます。同様に、

body = "A is: {A} & B is: {B} & C is: {C}" 
body = Replace(body, "{A}", Forms!Data!A_value) 
body = Replace(body, "{B}", Forms!Data!B_value) 
body = Replace(body, "{C}", Forms!Data!C_value) 

そして、複数の行に抜け出す:

1

あなたが使用できる別のトリックは、次にように、中にそれらを埋めるために文を交換して使用し、値のプレースホルダを持つ単一の文字列のテンプレートを作成することです

body = "A is: {A}{CR}B is: {B}{CR}C is: {C}{CR}" 
body = Replace(body, "{A}", Forms!Data!A_value) 
body = Replace(body, "{B}", Forms!Data!B_value) 
body = Replace(body, "{C}", Forms!Data!C_value) 
body = Replace(body, "{CR}", vbCrLf) 
+0

多くのフィールドを扱う場合には、面白いオプションと思われます。ありがとう。 – munnahbaba

+0

ニース - 出力でフィールドが複数回使用されている場合に特に便利です。人々の名前 - すべての発生を更新する1つの「置換」。 – YowE3K

関連する問題