vbaでメール送信時にpdfファイルを2つ添付したいのですが
ファイル名の指定でエラーが出てしまいます。
色々やってみたのですが、現在byref引数の型が一致しませんという
エラーが出ていて進まなくなりました。
教えてください。お願いします。
Sub sendMail_withattach()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("mail")
Dim OutApp As Outlook.Application
Set OutApp = New Outlook.Application
Dim r As Long, lastrow As Long
lastrow = ws.Cells(4, 1).End(xlDown).Row
For r = 4 To lastrow
Dim OutMail As Outlook.MailItem
Set OutMail = OutApp.CreateItem(olMailItem)
Dim attachFile As Outlook.Attachments
Set attachFile = OutMail.Attachments
Dim attachFile2 As Outlook.Attachments
Set attachFile2 = OutMail.Attachments
Dim BodyOfMail As String
BodyOfMail = CreateBodyOfMail(ws, r)
With OutMail
.SendUsingAccount = Session.Accounts("aaa@bbb.com")
.To = ws.Cells(r, 3).Value
.Subject = ws.Cells(2, 5).Value
.body = BodyOfMail
End With
Dim key As String
key = ws.Cells(2, 11).Value
Dim key2 As String
key2 = ws.Cells(2, 11).Value
Call AddAttach(attachFile, key)
Call AddAttach(attachFile2, key2)
OutMail.Display ' OutMail.Save OutMail.Send
Set OutMail = Nothing
Next r
End Sub
Sub AddAttach(attachFile As Object, attachFile2 As Object, key As String, key2 As String)
Dim filename As String
Dim filename2 As String
Dim 案内 As String
Dim チラシ As String
filename = Dir(ThisWorkbook.Path & "\pdf\" & 案内 & "*")
attachFile.Add ThisWorkbook.Path & "\pdf\" & filename
filename2 = Dir(ThisWorkbook.Path & "\pdf\" & チラシ & "*")
attachFile2.Add ThisWorkbook.Path & "\pdf\" & filename2
MsgBox filename & vbCrLf & filename2
Set attachFile = Nothing
End Sub
よろしくお願いいたします
No.3ベストアンサー
- 回答日時:
AddAttach(attachFile As Object, attachFile2 As Object, key As String, key2 As String)
の仮引数の数と型に誤りがある。
attachFileはObjectではなくOutlook.Attachmentsでしょう。
あとOutlook.Attachmentsは、OutMail.Attachmentsを代入しており、それは特定メールの添付ファイルを操作するコレクションオブジェクトでしょう。
ともすれば、そのオブジェクトに添付したい数分のファイルを追加する制御をすればいいわけで、attachFile2を用意する必要はないでしょう。
やりたいことを何でもかんでも混ぜこぜでプログラムするのをやめて、一つずつ課題をクリアしていってみてはいかがでしょうか。
No.2
- 回答日時:
AddAttachの定義では、引数は「オブジェクト2つと、文字列2つ」ですが、呼び出しの時は、「オブジェクト1つと、文字列1つ」になっているからでしょうね。
何故こんなことになったのでしょうか??
プログラム全体は見てませんが、もし、Sub AddAttach が単独で正しく動いているなら、
Call AddAttach(attachFile, key)
Call AddAttach(attachFile2, key2)
を
Call AddAttach(attachFile, attachFile2, key, key2)
と、引数を合わせれば良いのでは?
No.1
- 回答日時:
こんにちは
内容は見てませんけれど・・
>現在byref引数の型が一致しませんという
>エラーが出ていて進まなくなりました。
単純に、
>Sub AddAttach(attachFile As Object, attachFile2 As Object, key As String, key2 As String)
というプロシージャを
>Call AddAttach(attachFile, key)
で呼び出しているので、第二引数の型があっていないだけでは?
(keyはString、attachFile2 はObject)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAの間違い教えて下さい 5 2024/08/03 21:35
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- Visual Basic(VBA) 重複確認 2 2024/06/30 12:17
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) VBA初心者です。 2 2022/10/10 11:52
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) VBA 1 2024/02/03 22:51
- Visual Basic(VBA) エクセル VBAについて教えてください 2 2023/04/26 13:25
- Visual Basic(VBA) Excel VBA マクロ シート名を変えずにA列にあるセル名の名前でファイルの分割をしたいです 3 2024/02/05 22:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.NET で 二次元のハッシュは...
-
phpでforeachの中にforeachがあ...
-
C言語の配列をPush(追加)する...
-
配列をループでたくさん宣言し...
-
別ファイルの構造体の値を読み...
-
stdClass Objectを連想配列のよ...
-
エラーメッセージ(無効な間接...
-
php で1から100までの素数の表...
-
foreachのなかで次のキーを参照...
-
PHPのループ数限界値について
-
行列
-
CakePHPのfindの取得件数は?
-
配列一致(要素順番は違うが内容...
-
自動で番号を振りたい
-
file_existsでファイル名の部分...
-
連想配列のprint_rやvar_dump出...
-
Texでの数式
-
2次元配列のソート
-
CSVファイルの最終行のデー...
-
再帰関数を用いて配列の合計を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マッチング処理(1:N)
-
Excel VBAでフィルター後の対象...
-
foreachで上限回数指定方法また...
-
3つの連想配列を交互に代入し...
-
Smartyでインクリメント
-
sqlのデーターを『あ行』『か行...
-
POSTで渡されるデータの数がわ...
-
foerachの中でキーを足したり、...
-
foreachで配列を、左から縦3列...
-
foreachの間にテーブルの<TR>を...
-
リストボックス複数選択抽出方法
-
textより$$にはさまれた文字列...
-
判定の仕方
-
プログラムの改良
-
forを使わずにforeach文のみで...
-
元号の表示
-
Mac トロイの木馬”Flashback"に...
-
pdfファイルの複数添付 引数の型
-
Delphi XEの警告文を消したい
-
Arduino 全部のピンをチェック...
おすすめ情報

