質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Outlook

Microsoft OutlookはMicrosoft Officeの一部として組み込まれている、のユーザー管理とメーラーの機能を持ち合わせたソフトウェアです。

Q&A

1回答

1065閲覧

複数の対象者へ添付メールを2通添付し送信する方法について(ご質問)

dddaaabbb3

総合スコア0

Outlook

Microsoft OutlookはMicrosoft Officeの一部として組み込まれている、のユーザー管理とメーラーの機能を持ち合わせたソフトウェアです。

0グッド

0クリップ

投稿2021/12/07 09:39

前提・実現したいこと

初心者です。
複数の対象者へ添付メールを2通添付し送信したいと思っております。
2通目の添付をどのような式にすればよいかわからずご教授ください。

該当のソースコード

Sub ボタン1_Click()

Dim SendMailadd As String Dim rowcounter As Integer Dim SendTo As String Dim MailTitle As String Dim MailBody As String '5行目からのデータを取得 rowcounter = 5 With Sheets("Sheet1") '送信元アドレス取得 SendFrom = Cells(2, 1) '5行目から宛先が空になるまでループ Do Until Cells(rowcounter, 1) = "" SendTo = Cells(rowcounter, 1) SendCC = Cells(rowcounter, 2) SendBCC = Cells(rowcounter, 3) MailTitle = Cells(rowcounter, 4) MailBody = Cells(rowcounter, 5) & vbCrLf & Cells(rowcounter, 6) & vbCrLf & Cells(rowcounter, 7) & vbCrLf & vbCrLf & Cells(rowcounter, 9) AttachFile = Cells(rowcounter, 10) 'メール送信 Call SendMail(SendFrom, SendTo, SendCC, SendBCC, MailTitle, MailBody, AttachFile) rowcounter = rowcounter + 1 Loop End With

End Sub
' メール配信する
Sub SendMail(SendFrom, SendTo, SendCC, SendBCC, MailTitle, MailBody, AttachFile)

On Error GoTo ErrorHandler

Set oApp = CreateObject("Outlook.Application") Set objMAIL = oApp.CreateItem(0) objMAIL.SentOnBehalfOfName = SendFrom objMAIL.BodyFormat = 2 'HTML形式 objMAIL.Subject = MailTitle ' 件名 objMAIL.Body = MailBody ' 本文 objMAIL.To = SendTo objMAIL.CC = SendCC objMAIL.BCC = SendBCC If AttachFile <> "" Then objMAIL.Attachments.Add AttachFile End If objMAIL.Display ' メール送信 objMAIL.Save Set objMAIL = Nothing Set oApp = Nothing Exit Sub

ErrorHandler:

MsgBox (Err.Description)

End Sub

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jinoji

2021/12/09 14:10

1つめの添付ファイルはJ列に書かれているようですが、2つめはどこに書かれているでしょうか。
dddaaabbb3

2021/12/10 00:34

ご連絡をいただきありがとうございます。 AttachFile = Cells(rowcounter, 10) の下に AttachFile = Cells(rowcounter, 11)と追加してみましたが 2つ目の添付ファイルがつきませんでした。 Attachfileでは2つ目の添付ができないのかもしれないのですが、 ご教授いただけますと幸いです。
guest

回答1

0

こんな感じでどうでしょうか。

VBA

1'Sub ボタン1_Click() 2 3 AttachFile = Array(Cells(rowcounter, 10), Cells(rowcounter, 11)) 4 5 6 7'Sub SendMail(SendFrom, SendTo, SendCC, SendBCC, MailTitle, MailBody, AttachFile) 8 9 Dim f 10 For Each f In AttachFile 11 If f <> "" Then objMAIL.Attachments.Add f 12 Next 13

投稿2021/12/10 01:19

jinoji

総合スコア4585

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dddaaabbb3

2021/12/13 01:07

ご連絡をいただきありがとうございました。 お返事が遅くなり申し訳ございません。 私の条件式で変更をしなければいけない箇所があったのかもしれませんが、 エラーとなってしまいまして度々申し訳ございませんがお教えいただけますと 助かります。 '5行目から宛先が空になるまでループ Do Until Cells(rowcounter, 1) = "" SendTo = Cells(rowcounter, 1) SendCC = Cells(rowcounter, 2) SendBCC = Cells(rowcounter, 3) MailTitle = Cells(rowcounter, 4) MailBody = Cells(rowcounter, 5) & vbCrLf & Cells(rowcounter, 6) & vbCrLf & Cells(rowcounter, 7) & vbCrLf & vbCrLf & Cells(rowcounter, 9) AttachFile = Array(Cells(rowcounter, 10), Cells(rowcounter, 11)) 'メール送信 Call SendMail(SendFrom, SendTo, SendCC, SendBCC, MailTitle, MailBody, AttachFile) rowcounter = rowcounter + 1 Loop End With End Sub ' メール配信する Sub SendMail(SendFrom, SendTo, SendCC, SendBCC, MailTitle, MailBody, AttachFile) Dim f For Each f In AttachFile If f <> "" Then objMAIL.Attachments.Add f Next
jinoji

2021/12/13 01:11

どの行でどんなエラーが起きましたか?
dddaaabbb3

2021/12/13 01:25

実行時エラー’424’: デバック If f <> "" Then objMAIL.Attachments.Add f の左横に黄色の→がでました。
jinoji

2021/12/13 01:35

これって添付ファイル一つのときはエラーは起きなかったですか?
dddaaabbb3

2021/12/13 03:39

添付ファイルの指定を1つにしてみましたが、同じエラーとなりました。 式を変更する前での添付ファイル1つのときにはエラーにはならず、 添付ファイルが1つしかつきませんでした。 ご面倒をおかけいたします。。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問