• ベストアンサー

ACCESS CreateObjectを使ったMail送信の添付ファイル名

ACCESSからOutlookのMailを送信したいと思っています。 ------------------------ Dim myOL As Object Dim myMail As Object Set myOL = CreateObject("Outlook.Application") Set myMail = myOL.CreateItem(0) myMail.SentOnBehalfOfName = "" myMail.To = "" myMail.Cc = "" myMail.BCc = "" myMail.Subject = "" myMail.Attachments.Add ("") myMail.Body = "" myMail.Display ------------------------------ そこで、添付したいファイルのフルパスをフォーム上に入力し、 都度それを上の記述に反映したいと思います。 例)me.添付ファイル名 myMail.Attachments.Add ("& me.添付ファイル名 &") でも myMail.Attachments.Add (" me.添付ファイル名 ") でも エラーになってしまいます。 引き続きいろんなパタンを試してみますが、 お分かりになる方、教えて下さい!! (”や’に弱いんです・・・。)

質問者が選んだベストアンサー

  • ベストアンサー
  • bonaron
  • ベストアンサー率64% (482/745)
回答No.1

単純に myMail.Attachments.Add (me.添付ファイル名)

naopyong
質問者

お礼

本当にありがとうございました。 試したつもりでいました・・ 助かりました!!

その他の回答 (1)

  • venzou
  • ベストアンサー率71% (311/435)
回答No.2

Nullの場合や空白の場合を考慮し、 ファイルが存在するかもチェックした方がいいでしょう。 >myMail.Attachments.Add ("") 上記の行を下記に変更。 If ("" & Me.添付ファイル名 <> "") And (Dir(Me.添付ファイル名, vbNormal + vbReadOnly) <> "") Then  myMail.Attachments.Add (Me.添付ファイル名) End If

naopyong
質問者

お礼

本当にありがとうございました。 試してみたいと思います!!

関連するQ&A

  • AccessからOutlookを立上げファイル添付で自動メールしたいのですが

    以下のようなプログラムでファイルを添付して自動的にメール送信したいと思いました。しかし、.Attachments.Add Me![Attachment]のところで、「オブジェクトは、このプロパティーまたはメソッドは、サポートしていません。」というエラーでうまくいきません。Attachmentsで点を打つとAddが表示され、メンバーとして存在しているのになぜエラーになるのでしょうか?このエラーを回避する方法を教えて頂けないでしょうか?WinXP Professionalで、Access2003を使用しております。 Dim appOutlook As Outlook.Application Dim objMailItem As Outlook.MailItem Set appOutlook = CreateObject("Outlook.Application") Set objMailItem = appOutlook.CreateItem(olMailItem)   ... With objMailItem .To = Me![宛先] .CC = Me![CC先] .Subject = Me![件名] .Attachments.Add Me![Attachment] .Body = Me![内容] .Display .Send End With appOutlook.Quit Set objMailItem = Nothing Set appOutlook = Nothing

  • アクセスVBAでメールを送信(複数宛先・添付)

    vbaを使用しメールを送信しようとしております。 以下に記載のように設定をしておりますが、2点設定の方法がわかりかねております。 大変お手数ですが、ご教示いただければ幸いです。 (1)宛先を複数設定したい場合はどのように設定すればよろしいでしょうか。 別々に送るのではなく、宛先にアドレス1、アドレス2を設定し1通のメールで送信をしたいです。 (2)添付ファイルを複数添付したいのですが、宛先によって添付ファイルの数が異なります。 たとえば、宛先Aには添付ファイルが1,2があるが、Bには添付ファイル1のみであり添付ファイル2フィール付度はNULLです。 この場合、エラーになってしまうのですが、"添付ファイルフィールドがnullでも無視してそのまま送信する"と設定はできるのでしょうか。 --------------------------------------- テーブル名:テーブル1 フィールド:アドレス1、アドレス2、件名、本文、添付ファイル1、添付ファイル2 --------------------------------------- Sub SAMPLE_0216() Dim db As DAO.Database Dim R1 As Recordset Dim AP As Object Dim ML As Object Dim L1 As String Set db = CurrentDb Set R1 = db.OpenRecordset("テーブル1") Set AP = CreateObject("Outlook.Application") R1.MoveFirst Do Until R1.EOF 'メールを作成 Set ML = AP.createitem(0) 'アドレスをセット ML.To = R1!アドレス1 '件名をセット ML.Subject = R1!件名 '本文をセット ML.Body = R1!本文 'ファイルを添付1 L1 = R1!添付ファイル1 ML.Attachments.Add L1 'ファイルを添付2 L1 = R1!添付ファイル2 ML.Attachments.Add L1 'メールを送信 ML.Send R1.MoveNext Loop End Sub ----------------------------------------- どうぞよろしくお願いいたします。

  • EXCELVBA メール送信について

    EXCELVBAで加工したデータをメールに添付して送信するツールを作成したいのですが、送信後保存ファイルを削除したい場合の方法分からす困っています。自身(?)を削除する事になるのでうまく動作しません。何方か良い方法があったらご指導を頂けないでしょうか? 宜しくお願いします。 Sub MailSend() Dim app As Object Dim objml As Object Dim moji As String Set app = CreateObject("Outlook.Application") Set objml = app.CreateItem(0) moji = "ご査収ください" objml.To = "xxxx@xxx.xxx.or.jp" '宛先 objml.Subject = "TEST" '件名 objml.Body = moji '本文の代入 objml.Attachments.Add "D:\My Documents\TEST.xls" objml.Send '送信   kill(TEST.xls) →※この部分がどのように処理して良いか分かりません End Sub

  • 初心者ですが、Excelファイル(AAA.xls)の、A1セルの情報を

    初心者ですが、Excelファイル(AAA.xls)の、A1セルの情報を Outlookの本文に入力したいと思っています。 そこで、下記プログラムを組んだのですが、間違いだらけのようで 起動しません。どなたか教えていただけませんか? Sub メール自動送信() Dim my01App As Outlook.Application Dim mymail As Outlook.MailItem Dim body As String Set my01App = CreateObject("Outlook.Application") Set tgtdb = CreateObject("Excel.Application") Set mymail = my01App.CreateItem(olMailItem) With mymail mymail.body = "C:\Users\tomohide\Desktop\AAAA.xls".cells(1,1) End With mymail.Display End Sub

  • ExcelVBAで添付ファイルをつけたいです。

    Excelで顧客のアドレス帳を作成しており、そのアドレス帳全員に同じ文面でメールを送信したいと思い、マクロを作成しております。 調べながらここまではきたのですが、添付ファイルが着きません。 お手数ですが、どなたか自身のデスクトップ上にあるフォルダ内のPDFを 全メールに添付する方法を教えて頂けますでしょうか。 実行しようとすると「添付できるのは、ファイルかオブジェクトに限られます。」と出てしまいます。 ご教示の程、宜しくお願い致します。 下記書いたコードです。 Sub 自動送信Sample() Dim OL As Outlook.Application Dim MI As Outlook.MailItem Dim R_Start As Integer, R_End As Integer Dim Tenp1 As String, Tenp2 As String Set OL = CreateObject("Outlook.Application") Tenp1 = Worksheets("Sheet1").Range("B4") '添付1 Tenp2 = Worksheets("Sheet1").Range("B5") '添付2 R_Start = Worksheets("Sheet1").Range("G2") + 7 '開始番号(開始行) R_End = Worksheets("Sheet1").Range("I2") + 7 '終了番号(終了行) For R_Start = R_Start To R_End Set MI = OL.CreateItem(olMailItem) MI.SentOnBehalfOfName = Worksheets("Sheet1").Range("B2") '差出人 MI.Subject = Worksheets("Sheet1").Range("B3") '件名 MI.To = Worksheets("Sheet1").Cells(R_Start, "B") 'To MI.CC = Worksheets("Sheet1").Cells(R_Start, "C") 'CC MI.BCC = Worksheets("Sheet1").Cells(R_Start, "D") 'BCC '添付 If Tenp1 <> "" Then MI.Attachments.Add Tenp1 End If If Tenp2 <> "" Then MI.Attachments.Add Tenp2 End If '本文 MI.Body = Worksheets("Sheet1").Cells(R_Start, "E") & vbCr _ & Worksheets("Sheet1").Cells(R_Start, "F") & vbCr & vbCr _ & Worksheets("Sheet2").Range("A3") MI.Display 'メール表示 Next Set OL = Nothing Set MI = Nothing MsgBox "完了!" End Sub

  • メール本文に段落を設ける。

    OUTLOOKのSENDメソッドを使って、メールを自動送信する際、次の構文では、本文がだらだらするので、段落を設けたいのですがどのようにすればいいか教えて下さい。 Dim AAA, BBB, CCC As Object Set AAA = CreateObject("OUTLOOK.APPLICATION") Set BBB = AAA.CREATEITEM(OLMAILITEM) BBB.To = "宛先" BBB.Subject = "用件名" BBB.BODY = Range("I2").Value & " " & Range("I3").Value & " " & Range("I4").Value & " " & Range("I5").Value & " " & Range("I6").Value Set CCC = BBB.ATTACHMENTS CCC.Add "添付ファイル名" BBB.SEND Set BBB = Nothing Set CCC = Nothing Set AAA = Nothing

  • エクセルからの自動送信メールの件名にセルの値

    いつもお世話になっております。 先日ここでエクセルから自動でPDFファイルを作成し所定の宛先に自動送信するコードを教わって使い始めたのですが、もう一息改善できれば非常にありがたいのですが当方の実力ではどこか弄ると全く動かなくなるのでHELPです。 やりたいのはエクセルの表がリンクで作成されて、そのエクセルの表だけをPDFで決まった宛先に送付して「送信完了」となるのですが、メールの件名をエクセルの決まったセルの文字を引っ張ってくるようにできれば本当にマクロボタン1クリックで仕事が完了するので何とか助けていただきたく。 つまり下記のコードの件名の .Subject = "結果報告書"に「A1セルの文字」を入れたいのです。 例えば表の参照元シートのA1の製品名「○○」とA2に「結果報告書」でB1に=A1&A2で「○○結果報告書」として件名にB1が入れば理想的ですが、件名に品名(A1)が入るだけでも十分ですので、よろしくお願い致します。 Sub Test() Dim FilePath As String Dim OutlookApp As Object Dim OutlookMail As Object On Error Resume Next FilePath = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\結果報告書.pdf" Worksheets("結果報告書").ExportAsFixedFormat Type:=xlTypePDF, Filename:=FilePath Set OutlookApp = CreateObject("Outlook.Application") Set OutlookMail = OutlookApp.CreateItem(0) With OutlookMail .To = "****@******" 'メール宛先" .CC = "" 'メールのCC .BCC = "" 'メールのBCC .Subject = "結果報告書" 'メールの件名 .Body = "表題の件添付の通りです。" 'メールの本文 .Attachments.Add FilePath '添付ファイル .Send End With MsgBox "送信完了" End Sub

  • VBA エクセル メール送信 ハイパーリンクの貼り方

    お世話になります。 首題の通り、エクセルに記述したマクロを使いメールを送りたいのですが、その際に文章の記述にハイパーリンクを張りたいのです。 例えば下記のモジュールですと、文章のBODYの部分には「OKWAVE」とだけ表示されますが、これをクリックすると[http://okwave.jp/]が開くようにしたいのですが、どのように記述すればよろしいのでしょうか?よろしくご指南くださいませ。 Sub test() Dim strBody As String Filename = "ハイパーリンクの貼り方???" strBody = "OKWAVE" Set myOL = CreateObject("Outlook.Application") Set myMAIL = myOL.CreateItem(0) With myMAIL .to = "123@123.GOM" .Subject = Filename .body = strBody .display '.send End With Set myMAIL = Nothing Set myOL = Nothing End Sub

  • ExcelからMailをしたとき漢字が出ない

    Excel上にあるセルの内容をメールにて送りたくて次のようなマクロでメールしたときに本文(.body)の文字が英数は出るのですが漢字が出ません どこを直せばよいか教えてください Sub Mail_01() Dim OutApp As Object Dim OutMail As Object Set OutApp = CreateObject("Outlook.Application") Set OutMail = OutApp.CreateItem(0) With OutMail .To = Sheets("MAIN").Range("U32") ’アドレスの入力 .CC = "" .BCC = "" .Subject = Sheets("MAIN").Range("U33") ’題目の入力 .Body = Sheets("MAIN").Range("U34") '.Attachments.Add ActiveWorkbook.FullName .Send End With Set OutMail = Nothing Set OutApp = Nothing 'Application.Quit End Sub それと.sendでダイアログが現れます。これを出なくしてプログラムを続けたいのですかどうすれば良いのでしょうか 2点よろしくお願いします

  • エクセルVBAでメールに画像添付

    エクセル2010です。 以下のようなVBAでOutlookメールを作成しているのですが、本文の中に画像を添付する方法がわかりません。 下記で言えば strMOJI(0) と strMOJI(1) の間に画像を張り付けたいのです。 画像ファイルを添付するのではなく画像として見えるようにしたいのです。 どのように書けばよろしいでしょうか? Sub TEST001()   Dim oApp As Object   Dim objMAIL As Object   Dim strMOJI(1) As String   On Error Resume Next   Set oApp = GetObject(, "Outlook.Application")   On Error GoTo 0   If oApp Is Nothing Then     Set oApp = CreateObject("Outlook.Application")   End If   Set objMAIL = oApp.CreateItem(0)   strMOJI(0) = "こんにちは!" & vbCrLf & _   "テストです。。" & vbCrLf & _   "よろしくおねがいします。" & vbCrLf   strMOJI(1) = vbCrLf & _   "以上です。" & vbCrLf & _   "ABC株式会社" & vbCrLf & _   "emaxemax"   objMAIL.To = ""   objMAIL.CC = "xxxx@xxx.co.jp"   objMAIL.Subject = "テスト"   objMAIL.Body = strMOJI(0) & strMOJI(1)   objMAIL.Display End Sub

専門家に質問してみよう