
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
vba textboxへの入力について教...
-
【ExcelVBA】5万行以上のデー...
-
VBAでCOPYを繰り返すと、処理が...
-
複数のExcelファイルをマージす...
-
【ExcelVBA】値を変更しながら...
-
vbsでのwebフォームへの入力制限?
-
VBA ユーザーフォーム ボタンク...
-
【マクロ】シートの変数へ入れ...
-
Vba セルの4辺について罫線が有...
-
Vba Array関数について教えてく...
-
WindowsのOutlook を VBA から...
-
【マクロ】並び替えの範囲が、...
-
Excelのマクロについて教えてく...
-
VBAで特定の文字が入った行をコ...
-
【ExcelVBA】値を変更しながら...
-
VBAでセルの書式を変えずに文字...
-
VBA 円グラフ 特定条件に一致し...
-
【マクロ】売上一覧YYYYMMDDHHS...
-
【マクロ】開いているブックの...
-
エクセルのマクロについて教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MySQLから受け取ったデータを連...
-
変数に格納された文字列でdefin...
-
先頭0で重複のない配列を作りたい
-
array関数につきまして
-
oreachで変数を用意せずにカウ...
-
関数をの引数について。
-
PHPの配列の出力について
-
配列からプルダウン用のHTMLを生成
-
規則性があるテキストをグルー...
-
forを使わずにforeach文のみで...
-
連想配列からの値の取り出し
-
POSTで渡されるデータの数がわ...
-
PHPでテキストファイルを読み込...
-
PHPで、'=>'の意味が分かりませ...
-
phpでforeachの中にforeachがあ...
-
php 2つの配列の内、片方を元に...
-
foreachで上限回数指定方法また...
-
POSTを配列として送信し、キー...
-
多次元配列の扱い方
-
PHPの構文で間違えが分からない
おすすめ情報