下記のコードでメール添付して送れるようにしているんですが、これをPDFではなくてA1~L47の範囲のみをエクセルで送れるようにする為には、どこを直せばいいですか?
下記のコードでメール添付して送れるようにしているんですが、これをPDFではなくてA1~L47の範囲のみをエクセルで送れるようにする為には、どこを直せばいいですか? Dim oApp As Object Dim omail As Object Dim pname As String Application.ScreenUpdating = False pname = Worksheets("sheet1").Range("P2").Value & ".pdf" Worksheets("sheet1").ExportAsFixedFormat Type:=xlTypePDF, FileName:=ThisWorkbook.Path & "\" & pname Set oApp = CreateObject("Outlook.Application") Set omail = oApp.CreateItem(0) With omail .To = Worksheets("sheet1").Range("W3").Value .Subject = Worksheets("sheet1").Range("W4").Value .Body = Worksheets("sheet1").Range("W5").Value 'メール本文 .Attachments.Add ThisWorkbook.Path & "\" & pname .Display '表示 '.Send '送信 End With Set oApp = Nothing Set omail = Nothing Application.ScreenUpdating = True
Visual Basic | Excel・72閲覧
ベストアンサー
変更部分はファイル名の設定と保存部分です。 Worksheets("Sheet1")は変数に入れてコードを短くしました。 Sub test() Dim oApp As Object Dim omail As Object Dim wb As Workbook Dim sh As Worksheet Dim fname As String Application.ScreenUpdating = False Set sh = Worksheets("Sheet1") fname = ThisWorkbook.Path & "\" & sh.Range("P2").Value & ".xlsx" Set wb = Workbooks.Add sh.Range("A1:L47").Copy Destination:=wb.Worksheets(1).Range("A1") wb.Close SaveChanges:=True, Filename:=fname Set oApp = CreateObject("Outlook.Application") Set omail = oApp.CreateItem(0) With omail .To = sh.Range("W3").Value .Subject = sh.Range("W4").Value .Body = sh.Range("W5").Value 'メール本文 .Attachments.Add fname .Display '表示 '.Send '送信 End With Set oApp = Nothing Set omail = Nothing Application.ScreenUpdating = True End Sub
いつもご回答ありがとうございます。 出来てはいるのですが、列と行の幅と高さも同じ状態で添付いたいのですが、その場合のコードも教えていただけないでしょうか?
質問者からのお礼コメント
ありがとうございます。やりたいことそのまま出来ました。
お礼日時:1/17 9:15