人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルでのメール送信について質問があります。

こちらのサイトさまで公開されている、
エクセルでのメール送信VBAを利用させていただいております。

http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_800_080.html

添付ファイルを選択した後に、
「メールを送信します。
SMTP,発信者,宛先等は正しいですか?」という
メッセージが表示されますが、
このメッセージが出る前に、
選択したファイルを自動的に開くことは可能でしょうか?
(確認のために表示させたいです・・・)


あと送信数が一定数を超えるとエラーになってしまいます。
(途中でアドレスが途切れてしまう)

これの解消方法ってありますでしょうか?

どうぞよろしくお願いいたします。


●質問者: ohtsu6
●カテゴリ:コンピュータ インターネット
✍キーワード:SMTP VBA アドレス エクセル エラー
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● Mook
●300ポイント

とりあえず、最初の質問に対する答えです。

Sub test2()
 Dim MailSmtpServer As String
 Dim MailFrom As String
 Dim MailTo As String
 Dim MailSubject As String
 Dim MailBody As String
 Dim MailAddFile As Variant
 Dim strMSG As String
 Dim apendFile As Variant

 MailAddFile = Application.GetOpenFilename("全てのファイル (*.*),*.*", , _
 "添付ファイルを選択して下さい。", , True)
 For Each apendFile In MailAddFile
 If InStr(UCase(apendFile), ".PDF") > 0 Then
 CreateObject("WScript.Shell").Run "AcroRd32.exe """ & apendFile & """"
 Else
 MsgBox appendFile & "を添付します。"
 End If
 Next
 MailSmtpServer = Cells(1, 2).Text  ' SMTPサーバ
 MailFrom = Cells(2, 2).Text  ' 発信者
 MailTo = Cells(3, 2).Text  ' 宛先
 MailSubject = Cells(4, 2).Text  ' 件名
 MailBody = Cells(5, 2).Text  ' 本文
  ' メール送信(CC,BCCはブランク)
 strMSG = SendMailByCDO(MailSmtpServer, MailFrom, MailTo, "", "", _
 MailSubject, MailBody, MailAddFile)
  ' 文字コードを任意に指定する場合は以下のようにします。
' strMSG = SendMailByCDO(MailSmtpServer, MailFrom, MailTo, "", "", _
 MailSubject, MailBody, MailAddFile, cdoISO_2022_JP)
 If strMSG <> "OK" Then MsgBox Mid(strMSG, 3)
End Sub

pdf は開くようにしてみました。



2点目は推測ですが、途切れたところまでの文字の数はどのくらいでしょうか。

これが256文字である場合、オブジェクトを利用する上での制限であるかもしれません。

(外れていたらすみません。)


その場合、メールを個別に送るようにすれば回避できるかもしれませんが、

それでも構わないでしょうか。

その場合、

 strMSG = SendMailByCDO(MailSmtpServer, MailFrom, MailTo, "", "", _
 MailSubject, MailBody, MailAddFile)

の部分を

 Dim oneAddress As Variant
 For Each oneAddress In Split(MailTo,",")
 strMSG = SendMailByCDO(MailSmtpServer, MailFrom, CStr(oneAddress), "", "", _
 MailSubject, MailBody, MailAddFile)
 Next

のようにしてどうでしょうか。

◎質問者からの返答

Mookさま

どうもありがとうございます。

出来ました。

送信エラーチェックは今後試してみます。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ