Excel VBAでoutlookを操作する
OutlookをExcel VBAで呼び出す方法
ほんの一例
'Excel VBAでOutlook呼び出す
'ちょっと自己流過ぎて、どこまで合ってるかは謎
'でもちゃんと動いている
Set outlookObj = CreateObject("Outlook.Application")
Set myNameSpace = outlookObj.GetNamespace("MAPI")
Set InboxFolder = myNameSpace.GetDefaultFolder(6)
Set myExplr = outlookObj.ActiveExplorer
'get current email object
Set oBjMailitem = myExplr.Selection.Item(1)
'email thread
Set conV = oBjMailitem.GetConversation
Set objParentFolder = myExplr.Application.ActiveExplorer.CurrentFolder
'senderの名前を取得
'これは別でgetSenderNameってFunctionを自作してる
Debug.Print oBjMailitem.SenderEmailAddress
senderName = getSenderName(oBjMailitem.SenderEmailAddress)
'''解放
Set outlookObj = Nothing
Set myNameSpace = Nothing
Set InboxFolder = Nothing
Excel VBAから、OutlookのメールをPSTファイルとしてバックアップする
以下のサイトの引用です
Outlook研究所
' PST にエクスポートするプロシージャ
Public Sub ExportToPST()
Dim fldSrc As Folder
Dim fldDst As Folder
Dim strFilter As String
' コピー元はメールボックス
Set fldSrc = Session.DefaultStore.GetRootFolder
' コピー先は PST
Set fldDst = GetPSTRoot()
If fldDst Is Nothing Then Exit Sub
' フィルターを初期化
strFilter = ""
' コピー処理をフォルダーごとに呼び出し
CopyItems fldSrc, fldDst, "受信トレイ", strFilter
CopyItems fldSrc, fldDst, "送信トレイ", strFilter
CopyItems fldSrc, fldDst, "送信済みアイテム", strFilter
CopyItems fldSrc, fldDst, "下書き", strFilter
CopyItems fldSrc, fldDst, "連絡先", strFilter
End Sub