エクセルVBAから、shellメソッド?を使い、サンダーバードのメール作成画面を呼び出し
送信先、件名、本文はワークシートから持ってくるというプログラムを作りたいです。
webを調べた結果、自分にもできそうなのはshellでのメール作成画面の呼び出しだったので
以下のプログラムをテストしてます。
Shell """C:\Program Files\Mozilla Thunderbird\thunderbird.exe"" -compose ""to="" アドレス "",subject=件名,body=本文""", vbNormalFocus
上記プログラムで、メール画面を呼び出せたのですが
送信先、件名、本文を変数から入力することはできないのでしょうか?
例えば上記例で言うと、to=の後の「アドレス」を変数にしたいのです。
例えば上記のプログラムの前に
アドレス=○○@yahoo.co.jp
のように、変数宣言をしても、出てきた送信画面では「アドレス」のまま、固定値のままなのです。
メール作成画面にデータを渡す際、変数の使用をする方法はあるのでしょうか?
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://oshiete.goo.ne.jp/qa/5977178.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
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が見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
好きなおでんの具材ドラフト会議しましょう
肌寒くなってきて、温かい食べ物がおいしい季節になってきましたね。 みなさんはおでんの具材でひとつ選ぶなら何にしますか? 1番好きなおでんの具材を教えてください。
-
一回も披露したことのない豆知識
あなたの「一回も披露したことのない豆知識」を教えてください。 「そうなんだね」と「確かに披露する場所ないね」で評価します。
-
これ何て呼びますか Part2
あなたのお住いの地域で、これ、何て呼びますか?
-
牛、豚、鶏、どれか一つ食べられなくなるとしたら?
牛肉、豚肉、鶏肉のうち、どれか一種類をこの先一生食べられなくなるとしたらどれを我慢しますか?
-
高校三年生の合唱祭で何を歌いましたか?
大人になると大人数で合唱する機会ってないですよね。 思い出すと、高校三年生の合唱祭が最後でした。 そこで、みんなの思い出の合唱曲を知りたい!
-
VBA サンダーバードのメール自動作成
Visual Basic(VBA)
-
ExcelVBAでメールを作成してメーラーを起動するプログラムを作って
その他(プログラミング・Web制作)
-
AccessよりOutlook以外でメール送信したい
Access(アクセス)
-
-
4
Thunderbirdでデフォルト表示の差出人情報を変更
Yahoo!メール
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
アクセスで特定の数字以外(複...
-
VBAでの Replace関数で、ワイル...
-
【Excel VBA】複数ある特定の文...
-
文字列から数式に変換する標準...
-
Excelで3E8を3.00E+8にしない方...
-
php言語の脆弱性について
-
C言語の勉強しています。すみま...
-
OnTime 使用時のプロシージャへ...
-
GASに文字列として関数を入れる...
-
【COBOL】文字列から数値項目に...
-
MS SQLServer のSQLで文字列の...
-
エクセルでSQLでいうところの「...
-
excel vba 17桁の数字が表示で...
-
BAHTTEXT関数?!
-
textboxユーザーコントロールの...
-
エクセルでセル内の文字列の最...
-
VBscriptで文字サイズを指定で...
-
【Teraterm】文字列と変数の連...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
文字列からタブコードを取り除...
-
VBAでの Replace関数で、ワイル...
-
Excelで3E8を3.00E+8にしない方...
-
エクセルで文字列をtxtファイル...
-
Excelで指数表現しないようにす...
-
【Excel VBA】複数ある特定の文...
-
Left関数とRight関数を合わせた...
-
エクセルで文字列の最大値を抽...
-
同一セル内に関数と文字列を同...
-
VBA2005 16進を2桁で表示したい。
-
VBの「As String * 128」とは?
-
MS SQLServer のSQLで文字列の...
-
エクセル 数値データを桁をそ...
-
C#で年月を比較する
-
16進数を10進数に簡単に変換す...
-
“丸(〇/○/◯)”に似た文字…
-
アクセスで特定の数字以外(複...
-
Msgboxの×が押されたとき
おすすめ情報