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

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

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

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

Outlook

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

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

解決済

2回答

1692閲覧

VBAメール作成マクロのコード どこに間違いがあるのかが分からない

cherishlieben

総合スコア17

VBA

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

Outlook

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

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

0クリップ

投稿2021/12/10 16:19

VBAにて、outlookのメールを自動で作成するマクロを作成しているのですが、
メールが作成されないため、どこか間違いがあるのか、教えて頂けますでしょうか?
なお、実行時は特に何もエラーは表示されないですが、メールが作成されない状態となっています。
(参照シート名や参照セルは合っております。)

VBA

1Sub sendStartMail() 2 3 On Error GoTo Error1 4 5 Dim outlookObj As Outlook.Application 6 7 Dim outlookMail As Outlook.MailItem 8 9 Dim ws As Worksheet 10 11 12 Set outlookObj = CreateObject("Outlook.Application") 13 14 Set outlookMail = outlookObj.CreateItem(olMailItem) 15 16 Set ws = Worksheets("メール作成") 17 18 19 With outlookMail 20 .To = ws.Range("C2").Value 21 .Cc = ws.Range("C3").Value 22 .Subject = ws.Range("C4").Value 23 .Body = ws.Range("C5").Value 24 End With 25 26 Exit Sub 27 28Error1: 29 30 MsgBox Err.Description 31 32 33End Sub 34

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

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

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

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

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

guest

回答2

0

保存していないからでは?

コードを見た限りでは、メールを仮に作成して、保存せずに捨てているように見えます。

根拠は、MailItemにSave()メソッドがあることです。
MailItem オブジェクト (Outlook)
MailItem.Save()

一般的なサンプルコードでは、Send()での送信が目的となり、その処理内での保存が実行されるため、明示されていないものと思われます。

なお、実際の挙動は未検証であることをご了承ください。

投稿2021/12/11 00:30

YT0014

総合スコア1708

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

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

0

ベストアンサー

https://docs.microsoft.com/ja-JP/office/vba/api/Outlook.MailItem.Display
などを参考にして
outlookMail.Display 'みたいにアイテム作成後、.Display で表示してみては?

Set outlookObj = CreateObject("Outlook.Application") Set outlookMail = outlookObj.CreateItem(olMailItem) outlookMail.Display '※ここに追加 ↑で作成後、.Display で表示してみては? Set ws = Worksheets("メール作成")

投稿2021/12/10 17:55

ken3memo

総合スコア132

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問