dポイントプレゼントキャンペーン実施中!

いつもお世話になっております。
過去に何度か質問をさせていただき、今回のマクロまでたどり着くことが出来ました。
下記の内容にて、作成しました。
ここで、
(1)セルB1にあて先メアドを置いた場合に、メアドを載せる場合
(2)メールを送信する命令で、【myItem.Send】や【SendMail】ではメールが送信されている場合と送信待機の場合がはっせいしております。必ず、送信するまでの命令を、お教えいただきたいです。
PC環境は、XPです。
メールはMicrosoft Office Outlookです。

Sub CreateMail()
'参照設定 : Miscosoft Outlook 9.0Object Library
Const ShName = "MAIL送信"
Const SbjAdd = "b2"
Const BodyAdd = "b3:b14"

Dim olApp As Outlook.Application
Dim objMail As Outlook.MailItem
Dim Rng As Range
Dim StrBody As String
Set olApp = Outlook.Application
Set objMail = olApp.CreateItem(olMailItem)
For Each Rng In Range(BodyAdd)
StrBody = StrBody & Rng.Value & vbLf
Next Rng
With objMail
.Subject = Worksheets(ShName).Range(SbjAdd).Value
.Body = StrBody
.Display
End With
End Sub

A 回答 (2件)

こんにちは。



今のコードで、どこで、たぶん、Outlook が、どこでリターンコードを発生させるか、もしくは、エラーコードを取るかということになるのだろうけれども、一般的に、こちらでは、あまりOutlook 自体を使っている人はいません。出来ないというのではなくて、ダイアログボックスが立ち上がってしまうので、そこで手動になってしまうからなのですが。

>必ず、送信するまでの命令を

セルに、SendMail の戻り値 0 をおくようにするわけで、Loop し、途中に、Wait などを儲けて、全てが、0 または、Boolean値のTrue になるまで繰り返す、ということになるのではないか、と思います。

質問者さんのログを見てみると、最近、BASP21 を勧めてくれた人がいたようですね。

どうも、そちらには移行しなかったようですね。

今、そのBASP21 の SENDMAIL の内容を調べてみました。
http://www.hi-ho.ne.jp/babaq/bacs1.html

SendMailメソッド

  ret = bacs1.SendMail(mailto, names & "様" & vbCrLf)

ここですと、戻り値得られます。もちろん、本質的には、SendMail でも同じなのですが、機能的には、こちらのほうが上というよりも、便利なのですね。

もう一度、こちら側で考えられませんでしょうか?
なお、全体を入れるなら、インストールになりますが、単体ですと、確か、呼び出しが出来たように思います。もしも、会社の規定があれば、やむを得ず、Outlook側でせざるを得ないですが。

Declare Function SendMail Lib "bsmtp" _
(szServer As String, szTo As String, _
szFrom As String, szSubject As String, szBody As String, szFile As String) As String
    • good
    • 0
この回答へのお礼

レス、ありがとうございます。
PCの使用環境が、やはり会社で個々のPCを利用するので、様々なアイテムをダウンロード&インストールが難しいのです。
今回は、手間になりますが、手動で送受信を行うことにします。
ありがとうございました。

お礼日時:2007/07/04 04:17

こんにちは。



VBAでメール送信なら以下のサイトが参考になります。
http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub0 …

そのままダウンロードして利用可能です。
    • good
    • 0
この回答へのお礼

レス、ありがとうございます。
PCの使用環境が、やはり会社で個々のPCを利用するので、様々なアイテムをダウンロード&インストールが難しいのです。
今回は、手間になりますが、手動で送受信を行うことにします。
ありがとうございました。

お礼日時:2007/07/04 04:18

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