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

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

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Outlook

Microsoft OutlookはMicrosoft Officeの一部として組み込まれている、のユーザー管理とメーラーの機能を持ち合わせたソフトウェアです。

Q&A

解決済

2回答

3297閲覧

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

goki_gottan

総合スコア168

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Outlook

Microsoft OutlookはMicrosoft Officeの一部として組み込まれている、のユーザー管理とメーラーの機能を持ち合わせたソフトウェアです。

0グッド

0クリップ

投稿2019/03/23 04:49

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

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

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

できますでしょうか。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

excel シートに 一覧取得
数行で止めて確認してください

win10、office365

1 2Public Sub 受信メール() 3 4'画面更新停止 5 Application.ScreenUpdating = False 6 7' 定義 8 Dim objOL As Object 9 Dim sht As Worksheet 10 Dim rowCnt As Long 11 12' 「Outlookから取得する」をobjOLと命名 13 Set objOL = CreateObject("Outlook.Application") 14 15' 読み込むシート(シート名リスト)をshtと命名 16 Set sht = Worksheets("Sheet3") ' シート名 17 18' A列一番下のセルをrowCntと命名 19 rowCnt = Cells(Rows.Count, "A").End(xlUp).Row 20 21' Outlookの受信ボックスのメールを最終行の1行下に取得・件数分繰り返す 22 For Each itms In objOL.GetNamespace("MAPI").GetDefaultFolder(6).Items ' olFolderInbox:6 23 24 If itms.Class = 43 Then ' olMail:43 25 sht.Cells(rowCnt + 1, 1).Value = itms.ReceivedTime ' A列・受信日時 26 sht.Cells(rowCnt + 1, 2).Value = itms.SenderName ' B列・差出人 27 sht.Cells(rowCnt + 1, 3).Value = itms.SenderEmailAddress ' C列・差出人アドレス 28 sht.Cells(rowCnt + 1, 4).Value = itms.CC ' D列・CC 29 sht.Cells(rowCnt + 1, 5).Value = itms.Subject ' E列・件名 30 sht.Cells(rowCnt + 1, 6).Value = itms.Body ' F列・本文 31 32 ' ---PropertyAccessor クラスのインスタンスを取得します。 33 PropName = "http://schemas.microsoft.com/mapi/proptag/0x007D001E" 34 Set oPA = itms.PropertyAccessor 35 sht.Cells(rowCnt + 1, 7).Value = oPA.GetProperty(PropName) 'G列・ヘッダー 36 rowCnt = Cells(Rows.Count, "A").End(xlUp).Row 37 38 End If 39 40 Next 41 42 Set objOL = Nothing 43 44 Range("A1").Select 45 46' 画面更新停止を解除 47 Application.ScreenUpdating = True 48 49' 終了メッセージ 50 MsgBox "終了しました。" 51 52End Sub 53

投稿2020/02/09 11:21

sinzou

総合スコア392

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

VBAで、メールの返信、メール詳細などクリックすると、

メールの編集中画面になると思います。

サイトでシェアするボタンを押しても、アクティブにならず、内部的に開かれており、

そのまま、開かれた本文の内容を読み取り、内部で閉じるをしたいです。

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

投稿2019/03/24 10:59

imihito

総合スコア2166

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問