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も見ています
-
ハマっている「お菓子」を教えて!
この世には、おいしいお菓子がありすぎて……。 次何を食べたらいいか迷っています。 みなさんが今、ハマっている「お菓子」を教えてください!
-
家・車以外で、人生で一番奮発した買い物
どんなものにお金をかけるかは人それぞれの価値観ですが、 誰もが一度は清水の舞台から飛び降りる覚悟で、ちょっと贅沢な買い物をしたことがあるはず。
-
CDの保有枚数を教えてください
ひとむかし前はCDを買ったり借りたりが主流でしたが、サブスクで簡単に音楽が聴ける今、CDを手に取ることも減ってきたかと思います。皆さんは2024年現在、何枚くらいCDをお持ちですか?
-
【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
【お題】 ・世界最古のコンビニについて知ってる事を教えてください
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
Vba ファイル書き込み時に書き込みエラーを回避する方法を教えてください
Visual Basic(VBA)
-
VBAの間違い教えて下さい
Visual Basic(VBA)
-
IF文、条件分岐の整理方法
Visual Basic(VBA)
-
-
4
サブフォルダに格納されているファイルを、ファイル名ごとに条件分岐させたい
Visual Basic(VBA)
-
5
VBAコードのインデント表示
Visual Basic(VBA)
-
6
時間短縮のために、テキストファイルの入出力をメモリを使って出来ないですか?
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
テキストファイルのフィールド行のみ削除したい
Visual Basic(VBA)
-
12
Excel VBA 選択範囲の罫線色の変更プロージャの動作速度の改善について
Visual Basic(VBA)
-
13
VBの色を変えるにはどうしたらいいですか?
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
エクセルVBA
Visual Basic(VBA)
-
19
現在のブックを閉じないで、マクロ抜きの(現在のブックの)コピーを作成したい
Visual Basic(VBA)
-
20
VBA レジストリの値の読み方について教えてください
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PHPの構文で間違えが分からない
-
pdfファイルの複数添付 引数の型
-
Delphi XEの警告文を消したい
-
PHPで変数名にハイフンを使うに...
-
配列をループでたくさん宣言し...
-
PHPで10連ガチャを作成したいの...
-
FortranのOPEN文
-
別ファイルの構造体の値を読み...
-
特定の文からメールアドレスの...
-
String だと「 ByRef引数の型が...
-
$_SESSIONに二次元配列を使える...
-
C言語の配列をPush(追加)する...
-
Resource id #3 と表示されま...
-
STLのvectorで作った配列をメン...
-
チェックボックス複数選択 mys...
-
プルダウンメニューにDBの内容...
-
重複する文字を1つにするには?
-
pythonのプログラムについて
-
PHPでのsubstr関数について
-
複数行のデータのPOST処理に関して
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マッチング処理(1:N)
-
PHPで変数名にハイフンを使うに...
-
foreachで上限回数指定方法また...
-
pdfファイルの複数添付 引数の型
-
Delphi XEの警告文を消したい
-
PHPでこのコード自体に意味は無...
-
元号の表示
-
phpでforeachの中にforeachがあ...
-
PHPの構文で間違えが分からない
-
VB.NET で 二次元のハッシュは...
-
PHPで連想配列のプルダウンメニ...
-
ulのネストをタブ区切りに変換...
-
foreachとかの勝手な省略?
-
foreach文
-
3つの連想配列を交互に代入し...
-
filter_input( INPUT_POST, 'va...
-
Excel VBAでフィルター後の対象...
-
フィールド(項目)を縦に設定...
-
PHPで、'=>'の意味が分かりませ...
-
リストボックス複数選択抽出方法
おすすめ情報