質問: VBAで、メールの返信、メール詳細などクリックすると、 メールの編集中画面になると思います。 そこで、編集中画面にならず、内部で操作する方法を教えていただきたいです。 したい事は、内部で、メールを開き、本文を読み取り、そのまま閉じる をしたいです。 受信メールからメールを開くのではなく、サイトでシェアするなどのボタンを押すと、 メール本文が立ち上がり、その編集中の画面のことです。 サイトでシェアするボタンを押しても、アクティブにならず、内部的に開かれており、 そのまま、開かれた本文の内容を読み取り、内部で閉じるをしたいです。 できますでしょうか。
回答: excel シートに 一覧取得 数行で止めて確認してください ``` Public Sub 受信メール() '画面更新停止 Application.ScreenUpdating = False ' 定義 Dim objOL As Object Dim sht As Worksheet Dim rowCnt As Long ' 「Outlookから取得する」をobjOLと命名 Set objOL = CreateObject("Outlook.Application") ' 読み込むシート(シート名リスト)をshtと命名 Set sht = Worksheets("Sheet3") ' シート名 ' A列一番下のセルをrowCntと命名 rowCnt = Cells(Rows.Count, "A").End(xlUp).Row ' Outlookの受信ボックスのメールを最終行の1行下に取得・件数分繰り返す For Each itms In objOL.GetNamespace("MAPI").GetDefaultFolder(6).Items ' olFolderInbox:6 If itms.Class = 43 Then ' olMail:43 sht.Cells(rowCnt + 1, 1).Value = itms.ReceivedTime ' A列・受信日時 sht.Cells(rowCnt + 1, 2).Value = itms.SenderName ' B列・差出人 sht.Cells(rowCnt + 1, 3).Value = itms.SenderEmailAddress ' C列・差出人アドレス sht.Cells(rowCnt + 1, 4).Value = itms.CC ' D列・CC sht.Cells(rowCnt + 1, 5).Value = itms.Subject ' E列・件名 sht.Cells(rowCnt + 1, 6).Value = itms.Body ' F列・本文 ' ---PropertyAccessor クラスのインスタンスを取得します。 PropName = "http://schemas.microsoft.com/mapi/proptag/0x007D001E" Set oPA = itms.PropertyAccessor sht.Cells(rowCnt + 1, 7).Value = oPA.GetProperty(PropName) 'G列・ヘッダー rowCnt = Cells(Rows.Count, "A").End(xlUp).Row End If Next Set objOL = Nothing Range("A1").Select ' 画面更新停止を解除 Application.ScreenUpdating = True ' 終了メッセージ MsgBox "終了しました。" End Sub ```