家・車以外で、人生で一番奮発した買い物

OSは、XPpro
Excelは2003を使用しています。

VBAで、EXCELの表からOutlookExpressのメール作成をしたく、
色々なサイトを見ながら 下記までは何とか書いたのですが、
宛先(=add)のところが、どうしても表のe-mailアドレスの値を代入できません。
どう直せば良いのか教えて頂けないでしょうか。
よろしくお願い致します。

Sub outlookexpress用メール作成()

Dim Subj As String
Dim BodyText As String
Dim t As String
Dim cellGyo As Integer
Dim add As String

For cellGyo = 2 To 100
Cells(cellGyo, 6).Select
add = Selection.Value
If add = "" Then
Exit For
End If
Subj = "展示会のご案内"
BodyText = Cells(2, "G")

t = "C:\Program Files\Outlook Express\msimn.exe /mailurl:mailto: add ?bcc=""&subject=" & Subj & "&body=" & BodyText & "%20"
MsgBox t
Shell t

Next cellGyo

End Sub

**********
(私はOutlookを使用していますが、
同僚がOutlookExpressを使用しています為、
OutlookExpress用のVBAを作成したく奮闘しています。)

A 回答 (3件)

#2です。



>書いて下さいました2つの t=~ ですが、
>どちらも宛先のところに、add.valueと入ってしまいます。

 ん? それは不思議な現象ですねぇ。

 きっと、6338-tm さんが、ご質問文内にお書きになった コード を弄くり回された結果かと存じますが、

t = ~~ mailurl:mailto: add ?bcc=~~
の部分が、
t = ~~ mailurl:mailto: add.value ?bcc=~~
になっているのと違いますか?

 私が前回答でお示しした内容は、ダブルクォーテーションマーク の有無を問題にしていますので、何でしたら、下記でお試しになってみてください。


Sub outlookexpress用メール作成()

Dim Subj As String
Dim BodyText As String
Dim t As String
Dim cellGyo As Integer
Dim add As String

For cellGyo = 2 To 100
Cells(cellGyo, 6).Select
add = Selection.Value
If add = "" Then
Exit For
End If
Subj = "展示会のご案内"
BodyText = Cells(2, "G")

t = "C:\Program Files\Outlook Express\msimn.exe /mailurl:mailto: " & add & " ?bcc=""""&subject=" & Subj & "&body=" & BodyText & "%20"
MsgBox t
Shell t

Next cellGyo

End Sub



 ところで、「Dim add As String」ですが、「add」というのは、VBA・Excel・Office の Add メソッド と同じ綴りになりますので、変数名としては避けた方がよいのではなかったでしょうか?
    • good
    • 0
この回答へのお礼

返信遅くなってすみません。
ご回答ありがとうございます。
上記をコピペしたら、希望していた通りになりました!!
「add」の件、知らなかったのでこれから気をつけます。

丁寧にご教示頂き大変感謝致します。
ありがとうございました。

お礼日時:2011/02/07 14:51

>宛先(=add)のところが、どうしても表のe-mailアドレスの値を代入できません。


 状況が、よく解りませんが。。。

t = ~~
Shell t

のところを

t = "C:\Program Files\Outlook Express\msimn.exe /mailurl:mailto: " & add & " ?bcc=""""&subject=" & Subj & "&body=" & BodyText & "%20"
Shell t

とするか、または、

t = "mailto: " & add & " ?bcc=""""&subject=" & Subj & "&body=" & BodyText & "%20"
ActiveWorkbook.FollowHyperlink t

とするみたいなことでしょうか?


 それとも、
Cells(cellGyo, 6).Select
add = Selection.Value
の時点で
add = ""
になっているのでしょうか?
    • good
    • 0
この回答へのお礼

ご回答いただきありがとうございました。
書いて下さいました2つの t=~ ですが、
どちらも宛先のところに、add.valueと入ってしまいます。
表には e-mailアドレスが入っているのですが....

もう少し試行錯誤してみます。

お礼日時:2011/02/04 17:38

OutlookExpressに限定しないのであれば以下のように記述を行う事でメールを送信できます。



DIM oMsg as object
Set oMsg = CreateObject("CDO.Message")
oMsg.From = "MyMailaddress@hoge.ne.jp"
oMsg.To = "hogehoge@hoge.ne.jp;hogehoge2@hoge.ne.jp"
oMsg.BCC = "MyMailaddress@hoge.ne.jp"
oMsg.Subject = "Test "
oMsg.TextBody = "本文です"& vbCrLf & Now
oMsg.Send


※ 送信先メールアドレスは「;」で区切ります。
※ 送信済みアドレスにメールが残らないので送信される場合は、BCCに自分のアドレスを追加しておくとよいです。
    • good
    • 0
この回答へのお礼

教えて下さったのを試行錯誤していて、お礼が遅くなってすみません。
excelの表からe-mailアドレスを代入したいのですが、
どうもうまく行きません。

折角ご回答頂いたのにすみません。
ありがとうございました。

お礼日時:2011/02/04 17:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報