Switching the FROM Inbox

Try this function

Function GetAccountOf(sEmailAddress As String, ByRef OLook As Object) As Object
  Dim oAccount As Object
  Set GetAccountOf = Nothing
  For Each oAccount In OLook.Session.Accounts
    If oAccount = sEmailAddress Then
      Set GetAccountOf = oAccount
      Exit Function
    End If
  Next oAccount
End Function

You can then replace the .From line with:

  .SendUsingAccount = GetAccountOf("[email protected]", OLook)

Edit: Follow-up to comments below:

If the above doesn’t work then I suspect there’s something with your outlook that is causing this. You need to think of ways/questions to help determine the problem, such as

  • Is the account you want to use completely set-up within outlook?
  • When you send email manually from this account does outlook ask you for password?

Try also to think of test code you can use to narrow down the possibilities that may be the cause of the problem. for example try to run these subroutines and see if the first code actually lists your desired account. Does the second code result in the account being Nothing? If so, perhaps an option is to delete the account and add it again to outlook, which may help reset something that was causing the problem.

Sub ShowAllAccounts()
  Dim OLook As Object
  Dim oAccount As Object
  Set OLook = CreateObject("Outlook.Application")
  For Each oAccount In OLook.Session.Accounts
    MsgBox oAccount.DisplayName
  Next oAccount
End Sub

Sub DoesAccountExist()
  Dim OLook As Object
  Set OLook = CreateObject("Outlook.Application")
  If GetAccountOf("[email protected]", OLook) Is Nothing Then
    MsgBox "Account doesn't exist"
  End If
End Sub

Try to make up some other code similar to this and please get back if you are still stuck.

Edit 2:

You need to make sure you set the SendUsingAccount property before you .Display your email: Outlook if funny like that 🙂

Try this:

Dim OLook As Object, Mitem As Object, OlAttachment As Object
Dim fso As Object
Dim remail As Range
Dim acc As Object
Set Mitem = OLook.CreateItem(0)

With Mitem
                .SendUsingAccount = GetAccountOf("[email protected]", OLook)       
                .Display

                'send to:
                .To = send_list
            
                'send from:
                '.From = from_list
            
            
                'cc to:
                .CC = cc_list
                
                'bcc to:
                .BCC = bcc_list

Leave a Comment