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も見ています
-
あるあるbotに投稿したけど採用されなかったあるある募集
あるあるbotに投稿したけど採用されなかったあるあるをこちらに投稿してください
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
Vba ファイル書き込み時に書き込みエラーを回避する方法を教えてください
Visual Basic(VBA)
-
VBAの間違い教えて下さい
Visual Basic(VBA)
-
IF文、条件分岐の整理方法
Visual Basic(VBA)
-
-
4
サブフォルダに格納されているファイルを、ファイル名ごとに条件分岐させたい
Visual Basic(VBA)
-
5
時間短縮のために、テキストファイルの入出力をメモリを使って出来ないですか?
Visual Basic(VBA)
-
6
VBAコードのインデント表示
Visual Basic(VBA)
-
7
ExcelVBAマクロで実行した時の疑問
Visual Basic(VBA)
-
8
Excel_VBAについて質疑です。(for~next)
Visual Basic(VBA)
-
9
VBA コードどこがおかしいですか?
Visual Basic(VBA)
-
10
VBAなくなるの?
Visual Basic(VBA)
-
11
VBの色を変えるにはどうしたらいいですか?
Visual Basic(VBA)
-
12
テキストファイルのフィールド行のみ削除したい
Visual Basic(VBA)
-
13
Excel VBA 選択範囲の罫線色の変更プロージャの動作速度の改善について
Visual Basic(VBA)
-
14
プログラマーは誘惑にさらされる人生?
その他(プログラミング・Web制作)
-
15
VBA初心者です。次のVBAコードで、17行目を削除したいのですがうまく動きません 改善策を教えてく
Visual Basic(VBA)
-
16
Excel-VBAのmsgBox()の不思議
Visual Basic(VBA)
-
17
Excel VBA 定義されたプロージャ名、関数名の取得
Visual Basic(VBA)
-
18
現在のブックを閉じないで、マクロ抜きの(現在のブックの)コピーを作成したい
Visual Basic(VBA)
-
19
VBA レジストリの値の読み方について教えてください
Visual Basic(VBA)
-
20
エクセルVBA
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列の順番により別の配列を並...
-
マッチング処理(1:N)
-
新大阪・梅田周辺でチェックア...
-
pdfファイルの複数添付 引数の型
-
配列操作
-
行列
-
漢字のソートについて
-
配列をmb_ereg_replaceで一気に...
-
別ファイルの構造体の値を読み...
-
$_SESSIONに二次元配列を使える...
-
String だと「 ByRef引数の型が...
-
プルダウンメニューにDBの内容...
-
foreachのなかで次のキーを参照...
-
URLのサブドメインとドメイン部...
-
どちらが速いのか?mysql_num_rows
-
MYSQLとPHPによって取得する多...
-
C言語の配列をPush(追加)する...
-
Smartyで多次元配列をスマート...
-
PHPのループ数限界値について
-
配列 一部除外してソート?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マッチング処理(1:N)
-
PHPで変数名にハイフンを使うに...
-
foreachで上限回数指定方法また...
-
pdfファイルの複数添付 引数の型
-
Delphi XEの警告文を消したい
-
PHPでこのコード自体に意味は無...
-
元号の表示
-
phpでforeachの中にforeachがあ...
-
PHPの構文で間違えが分からない
-
PHPで連想配列のプルダウンメニ...
-
VB.NET で 二次元のハッシュは...
-
foreachとかの勝手な省略?
-
filter_input( INPUT_POST, 'va...
-
Excel VBAでフィルター後の対象...
-
foreach文
-
ulのネストをタブ区切りに変換...
-
3つの連想配列を交互に代入し...
-
フィールド(項目)を縦に設定...
-
PHPで、'=>'の意味が分かりませ...
-
textより$$にはさまれた文字列...
おすすめ情報