0

Having an issue figuring out how to prompt to choose the files I want to email.

Dim olApp As Outlook.Application
Dim diaFolder As FileDialog
Set diaFolder = Application.FileDialog(msoFileDialogFolderPicker)
Set olApp = CreateObject("Outlook.Application")
Dim olMail As Outlook.MailItem
Set olMail = olApp.CreateItem(olMailItem)

olMail.To = "email@email.com"
olMail.Subject = "Subject Line"
olMail.Body = "Body of the Email"

diaFolder.AllowMultiSelect = True
diaFolder.Show

MsgBox diaFolder.SelectedItems

Set diaFolder = Nothing

olMail.Send
Martijn Pieters
  • 1,048,767
  • 296
  • 4,058
  • 3,343
punktilend
  • 73
  • 1
  • 2
  • 7
  • 1
    [This should help](https://stackoverflow.com/questions/26392482/vba-excel-to-prompt-user-response-to-select-folder-and-return-the-path-as-string) – BruceWayne Nov 20 '18 at 18:14
  • Do you want the user to pick a folder, or one or more individual files? If files then `Application.GetOpenFilename` is what you need to look at. – Tim Williams Nov 20 '18 at 18:15

1 Answers1

2

You can try this out:

Sub sendAttachment()

    Dim olApp As Outlook.Application
    Dim diaFolder As FileDialog
    Set diaFolder = Application.FileDialog(msoFileDialogFolderPicker)
    Set olApp = CreateObject("Outlook.Application")
    Dim olMail As Outlook.MailItem
    Set olMail = olApp.CreateItem(olMailItem)
    Dim lngCount As Long

    olMail.To = "email@email.com"
    olMail.Subject = "Subject Line"
    olMail.Body = "Body of the Email"


    ' Open the file dialog
    With Application.FileDialog(msoFileDialogOpen)
        .AllowMultiSelect = True
        .Show

        ' Display paths of each file selected
        For lngCount = 1 To .SelectedItems.Count
            attFilePath = Application.FileDialog(msoFileDialogOpen).SelectedItems(lngCount)
            olMail.Attachments.Add (attFilePath)
        Next lngCount

    End With

    olMail.Display
    'olMail.Send

End Sub

I hope this will help you.

Pawel Czyz
  • 1,651
  • 4
  • 17
  • 21