You need to link to Outlook
In any module Tools>Reference and find the latest version of outlook.
In a module, add:
Function SendOutlookMessage(ByVal Recipients As String, ByVal Subject As String, ByVal Body As String, ByVal DisplayMsg As Boolean, Optional ByVal CopyRecipients As String, Optional ByVal BlindCopyRecipients As String, Optional ByVal Importance As Integer = 2, Optional ByVal AttatchmentPath)
'Function to create and send an outlook message with more control than sendobject
'separate multiple recipients or CC, or BCC with comma
'importance - 1=low, 2=normal, 3=high
Dim objOutlook As Outlook.Application
Dim objOutlookMsg As Outlook.MailItem
Dim objOutlookRecip As Outlook.recipient
Dim objOutlookAttach As Outlook.Attachment
Dim txtRecipient, txtTempAttatchment1, txtTempAttatchment2 As String
Dim x As Integer
' Create the Outlook session.
Set objOutlook = CreateObject("Outlook.Application"
' Create the message.
Set objOutlookMsg = objOutlook.CreateItem(olMailItem)
With objOutlookMsg
' Add the To recipient(s) to the message.
Do While InStr(1, Recipients, ",", vbTextCompare) <> 0 'checks for multiple recipients and adds each
txtRecipient = Left(Recipients, InStr(1, Recipients, ",", vbTextCompare) - 1)
Recipients = Trim(Mid(Recipients, Len(txtRecipient) + 2, Len(Recipients)))
Set objOutlookRecip = .Recipients.Add(txtRecipient)
objOutlookRecip.Type = olTo
Loop
Set objOutlookRecip = .Recipients.Add(Trim(Recipients))
objOutlookRecip.Type = olTo
' Add the CC recipient(s) to the message if existing
If CopyRecipients <> "" Then
Set objOutlookRecip = .Recipients.Add(CopyRecipients)
objOutlookRecip.Type = olCC
End If
' Add the BCC recipient(s) to the message.
If BlindCopyRecipients <> "" Then
Set objOutlookRecip = .Recipients.Add(BlindCopyRecipients)
objOutlookRecip.Type = olBCC
End If
' Set the Subject, Body, and Importance of the message.
.Subject = Subject
.Body = Body & vbCrLf & vbCrLf
Select Case Importance
Case 1
.Importance = olImportanceLow
Case 2
.Importance = olImportanceNormal
Case 3
.Importance = olImportanceHigh
Case Else
.Importance = olImportanceNormal
End Select
' Add attachments to the message.
If Not IsMissing(AttatchmentPath) Then
txtTempAttatchment1 = AttatchmentPath
If CharCount((txtTempAttatchment1), ";"

= 0 Then
Set objOutlookAttach = .Attachments.Add(txtTempAttatchment1)
Else 'if there are multiple attatchments
txtTempAttatchment1 = txtTempAttatchment1 & ";" 'adds a closing ; to ensure loop always works
For x = 1 To CharCount((txtTempAttatchment1), ";"

txtTempAttatchment2 = Left(txtTempAttatchment1, InStr(1, txtTempAttatchment1, ";"

- 1)
txtTempAttatchment1 = Mid(txtTempAttatchment1, InStr(1, txtTempAttatchment1, ";"

+ 1, Len(txtTempAttatchment1))
Set objOutlookAttach = .Attachments.Add(txtTempAttatchment2)
Next x
End If
End If
' Resolve each Recipient's name. Temporarily disabled
For Each objOutlookRecip In .Recipients
objOutlookRecip.Resolve
Next
' Should we display the message before sending?
If DisplayMsg Then
.Display
Else
.Save
.Send
End If
End With
Set objOutlook = Nothing
End Function
This could be enhanced a bit for sending to multiple recipients, etc, but will work.
Then, in your button add:
SendOutlookMessage Recipients, Subject, Body, DisplayMsg, CopyRecipients, BlindCopyRecipients, Importance, AttatchmentPath
Obviously, most of these are strings, so you have to either pass string variables as arguments, or input them as strings directly into the code.
HTH