• ベストアンサー

アプリケーションから新規メールの作成をして・・

すみません、少し教えてください。 ただいまVB2005でアプリケーションを作成しており アプリのボタンをクリックすることで標準のメーラーの 新規メール作成画面を表示させたいと思っております。 調べてみた結果、マイクロソフトのHPから下記の構文から 新規メール作成画面を起動させることが可能となりました。 Process.Start("mailto:Test@xxx.co.jp?subject=報告&body=") メール送信の宛先、件名、本文は変化するので アプリの各テキストボックスに入力されている文字をそれぞれ代入したいのですがやり方がよくわかりません。 よろしければお知恵を貸してください。 お願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • deecyan
  • ベストアンサー率38% (89/233)
回答No.1

TEXT1とTEXT2とTEXT3のテキストボックスがあったとすると Process.Start("mailto:" & me.text1.text & "?subject=" & me.text2.text & "&body=" & me.text3.text) でできるはずですが、、、

masaxy
質問者

補足

>deecyan様 すみません、ありがとうございます &を使うことで連結することができたのですね。 追加で質問させてください。 ”本文”に入る文字列は改行を含まれるのですが メーラー側で正しく改行させるには改行コードを%0D%0Aに変換する必要があることが分かりました。 マイクロソフトのHPで調べてみると Dim txtLines() As String Dim n As Integer txtLines = TextBox1.Lines For n = 0 To txtLines.GetUpperBound(0) strBody = strBody & txtLines(n) & "%0D%0A" Next で実装できることがわかったのですが 実は質問ではテキストボックスに入力されている文字とお書きしましたが文字列変数に代入された文字を出力したいのです。 文字列変数でLinesプロパティ?に相当するものとはいったいなんでしょうか?さっぱりわかりません・・・。 初心者で申し訳ありません。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.2

http://www.microsoft.com/japan/msdn/vbasic/migration/tips/DefaultMail/を見ると VB2005では テキストボックスの入力各行全体が各行別に txtLines = TextBox1.Lines で捉えられ、txtLines(n)でn行目が捉えられる。 ーー ところが、文字列の場合は、コントロールでなくて、Lines プロパティはない。 本則にもどって 文字列には改行コードは途中に入っているのでしょうから Splitメソッド(注)などで、改行コードで部分に分けて、改行なしの文字列に分かれるので 上記WEbのように各末尾に"%0D%0A"をくっつける必要がある、ということではないでしょうか。 (注) http://homepage1.nifty.com/rucio/main/dotnet/shokyu/standard30.htm 画像3:リスト6の実行結果 >Splitメソッドは分解した内容を配列として返しますので を参照。

masaxy
質問者

お礼

ありがとございます。 教えていただいたSplitメソッドを使用することで メーラーで改行させることができました。 本当にありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A