質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.61%

Outlook エクセルVBAで画面アクティブにせず、メール操作する方法

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 1,958

score 74

VBAで、メールの返信、メール詳細などクリックすると、
メールの編集中画面になると思います。

そこで、編集中画面にならず、内部で操作する方法を教えていただきたいです。

したい事は、内部で、メールを開き、本文を読み取り、そのまま閉じる をしたいです。
受信メールからメールを開くのではなく、サイトでシェアするなどのボタンを押すと、
メール本文が立ち上がり、その編集中の画面のことです。
サイトでシェアするボタンを押しても、アクティブにならず、内部的に開かれており、
そのまま、開かれた本文の内容を読み取り、内部で閉じるをしたいです。

できますでしょうか。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

0

VBAで、メールの返信、メール詳細などクリックすると、
メールの編集中画面になると思います。
サイトでシェアするボタンを押しても、アクティブにならず、内部的に開かれており、
そのまま、開かれた本文の内容を読み取り、内部で閉じるをしたいです。

のあたりが、実際どんな動作を想定しているのかよく分かりませんが、
Application オブジェクト (Outlook) | Microsoft Docs
のイベントや、
MailItem オブジェクト (Outlook) | Microsoft Docs
のメンバーを調べられてはどうでしょうか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る