こんばんは! エクセルVBAで顧客リストをベースにメール作成していて、エクセルの表もメールにコピペで添付しています。 質問は3点です。 1. エクセルvbaでメールを作成する際、署名が最後に入ってしまいます。署名は別で用意しているのでいつもの署名はなくしたいですがどうしたらいいですか? 2. 作成したメールは別の方が確認するため、指定のシェアドライブのフォルダに保存したいですがsaveasだとエラーでできないです。 3. 上記メールをフォルダに保存後Displayしたメールを閉じたいです。もしくはDisplayしなくても表はメールにコピペ可能ですか? 以上よろしくお願いいたします。 Dim ws, wsP As Worksheet Dim Data, Data2, PO As Worksheet Dim q, J As Long Dim RowCnt, LastRow, List_Cnt As Long Set ws = ThisWorkbook.Sheets("List") Set wsP = ThisWorkbook.Sheets("Piv") Set Data = ThisWorkbook.Sheets("Full_PO") Set Data2 = ThisWorkbook.Sheets("Partial_PO") Set PO = ThisWorkbook.Sheets("PO") ---------- 省略---------- PO.Select Range(Range("A1"), ActiveCell.SpecialCells(xlLastCell)).Copy ws.Select Set OutlookObj = CreateObject("Outlook.Application") Set mailItemObj = OutlookObj.CreateItem(0) Dim groupaddress, toaddress, ccaddress As String Dim subject, mailBody, sign As String Dim fpath As String Dim Bssi, Cssi As String Bssi = Cells(q, 7).Value Cssi = Cells(q, 8).Value fpath = Range("C2").Value groupaddress = Range("D2").Value toaddress = Cells(q, 5).Value subject = Cells(q, 6).Value mailBody = Range("E2").Value sign = Range("F2").Value sign = Replace(sign, "BCSSI", Bssi) sign = Replace(sign, "CPSSI", Cssi) mailItemObj.BodyFormat = 2 mailItemObj.SentOnBehalfOfName = groupaddress mailItemObj.To = toaddress mailItemObj.CC = groupaddress mailItemObj.BCC = "" mailItemObj.subject = subject 'mailItemObj.Save mailItemObj.Display With mailItemObj.GetInspector().WordEditor.Windows(1).Selection .TypeText mailBody .TypeText vbCrLf .Paste .TypeText vbCrLf .TypeText sign End With mailItemObj.SaveAs fpath & subject & ".msg" , olmsg Set OutlookObj = Nothing Set mailItemObj = Nothing
Visual Basic