• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBA shellでメールを作成した際の変数は?)

VBA shellでメールを作成した際の変数は?

このQ&Aのポイント
  • Excel VBAから、shellメソッドを使ってサンダーバードのメール作成画面を呼び出せます。ただし、送信先、件名、本文を変数から入力することはできません。
  • 実際のプログラムでは、メール作成画面に直接固定値を渡す形になります。変数を使用する方法は存在しません。
  • もし変数を渡す必要がある場合は、外部のツールやライブラリを使用する必要があります。例えば、Outlook VBAでは変数を使用してメールを作成することができます。

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

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.1

Shell関数のコマンドに限らず、VBAコード内で文字列と変数をつなぐ時は "文字列" & hensuu1 & "文字列" & hensuu2 & "文字列" ..のように、 文字列は『"』(ダブルクォート)で括り、 変数は『"』で括りません。 文字列と繋ぐ時は『&』 で繋ぎます。 文字列内に『"』ダブルクォートそのものを使いたい時は 『""』 2個重ねる事で『"』になります。 なので   Dim アドレス As String   Dim 件名 As String   Dim 本文 As String   アドレス = "xxxxx"   件名 = "yyyyy"   本文 = "zzzzz"   Shell """C:\Program Files\Mozilla Thunderbird\thunderbird.exe"" -compose to=" & アドレス & ",subject=""" & 件名 & """,body=""" & 本文 & """", vbNormalFocus ..こんな感じになります。 少し整理するなら   Dim sPath As String   Dim Mailad As String   Dim Subjct As String   Dim Bodyst As String   sPath = """C:\Program Files\Mozilla Thunderbird\thunderbird.exe"" -compose "   Mailad = "アドレス"   Subjct = "件名"   Bodyst = "本文"   Shell sPath & "to=" & Mailad & "," & _          "subject=""" & Subjct & """," & _          "body=""" & Bodyst & """" ..みたく。 また、 http://okwave.jp/qa/q5977178.html?order=asc こちらも参考にすると良いかもしれません。 その場合、 Sub try_3 の最後の箇所 >  Arg = "mailto:メールアドレス?" & _ >     "subject=件名&" & _ >     "body=" & Arg >  Shell sPath & Arg ここを変数で対応させたいなら以下のように変更です。   Dim Mailad As String   Dim Subjct As String   Mailad = "アドレス"   Subjct = "件名"   Arg = "to=" & Mailad & "," & _      "subject=""" & Subjct & """," & _      "body=" & Arg   Shell sPath & Arg

nama2007
質問者

お礼

  Dim sPath As String   Dim Mailad As String   Dim Subjct As String   Dim Bodyst As String   sPath = """C:\Program Files\Mozilla Thunderbird\thunderbird.exe"" -compose "   Mailad = "アドレス"   Subjct = "件名"   Bodyst = "本文"   Shell sPath & "to=" & Mailad & "," & _          "subject=""" & Subjct & """," & _          "body=""" & Bodyst & """" で対応出来ました。謎が解けました。 ありがとうございました!

関連するQ&A