• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Outlookの文面を赤にする方法-エクセルVBA)

Outlookの文面を赤にする方法-エクセルVBA

このQ&Aのポイント
  • Outlookの文面を赤にする方法をエクセルVBAで学びましょう。
  • HTMLBodyを使用して、エクセルVBAでOutlookメールの特定の文面を赤にする方法を教えます。
  • コードを変更せずに、期限の部分だけ赤にする方法を解説します。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

「下記に近いWEB記事」を見つけました。 そのコードを、エクセルのある新規、ブックの標準モジュールに貼り付け、先頭部分に、下記のように、その一部を付け加え、ました。 ーー Sub HTML形式のOutlookメールを新規作成する() Set myOutLook = CreateObject("outlook.application") 'Outlook用の定義 Dim objMail As Object If MsgBox("Outlookメールを作成しますか?", vbYesNo + vbQuestion, "確認") = vbYes Then Set objMail = myOutLook.CreateItem(olMailItem) With objMail .BodyFormat = 2 ' 「3」の場合リッチテキスト型となります。「1」はテキスト型、「2」は HTML型となります。 .Subject = "業務日報(2021年12月10日)" '件名を指定します。 '本文をHTML形式で指定します。 .HTMLBody = "<b>宛先各位</b>" _ & "<br><br>" _ & "<b>本日の業務内容</b>について以下の通り報告いたします。" _ & "<br><br>" _ & "<span style=""font-size:18pt""><u>■業務内容</u></span><br>" _ & "<span style=""color: #008000"">9:00:朝礼<br>" _ & "10:00:商品納品<br>" _ & "13:00:定例会<br>" _ & "15:00:定期作業<br>" _ & "17:00:日報作成</span>" _ & "<br>" _ & "<br>" _ & "<span style=""color: #ff0000;font-family:メイリオ""><b>以上/A部タカヒロ </b></span>" _ & "<br>" _ & "<a href=""https://extan.jp"">ホームページ</a>" .To = "user1@extan.jp" 'Toを指定します。 .CC = "user2@extan.jp" 'CCを指定します。 .Display 'メールを表示します。 '.Send 'メールを送信します。 End With Else MsgBox "処理を中断します。" End If 'オブジェクトを解放します。 Set objMail = Nothing MsgBox "Outlookメールの作成が完了しました!", vbInformation End Sub 上記でHTML文のメールが作成されます。 HTML文の作成が得意でなければ、HTML文の本で調べて、(上記にもその部分がありますが)色付けを行い、自分のメイル・アドレスにメイル送信テストを行い、上手く行くか、やって見てください。 私の場合は、OUTLOOKで、 ーーー 宛先各位 本日の業務内容について以下の通り報告いたします。 ■業務内容 9:00:朝礼 10:00:商品納品 13:00:定例会 15:00:定期作業 17:00:日報作成 以上/A部タカヒロ ホームページ の「以上/A部タカヒロ 」が赤字になるところまでは確認しました。 ーー 一般論として、OfficeのVBAでは、 文字に色を付けるのは、それに応じる、「オブジェクト」を捕まえる必要があります。単にTextと書いただけでは、実現しないと思います。エクセルの場合はRangeオブジェクトなどです。 ーー HTML文を書く以外の方法もあるようです。不案内なので解説できませんが。

ticktak
質問者

お礼

ありがとうございました。ほぼ思い通りに行きました。色を付ける件につきましては満足のいく回答を得ることができました。

その他の回答 (1)

  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.2

実戦で使ったことがないので、正しいコーディングかどうか若干怪しいですが、 HTMLにするわけですから テキスト全体をHTML形式で書き、 HTMLBodyに渡す必要があるものと思います。 後記のようなコードです。 Option Explicit Sub メール()  Dim myOutLook As Object  Dim Omail As Object    'Outlookの定義  Set myOutLook = CreateObject("outlook.application")  Set Omail = myOutLook.CreateItem(olMailItem)  'メール作成  With Omail   .BodyFormat = olFormatHTML   .Subject = "意見記入のお願い" 'subject   .HTMLBody = Omail.HTMLBody & "いつもお世話になっております。<BR>" & vbCrLf   .HTMLBody = Omail.HTMLBody & "下記の申請が提出されました。<BR>" & vbCrLf   .HTMLBody = Omail.HTMLBody & " <FONT Color=" & """#FF0000""" & ">" & vbCrLf   .HTMLBody = Omail.HTMLBody & "期限:10月30日<BR>" & vbCrLf   .HTMLBody = Omail.HTMLBody & "</FONT>" & vbCrLf   .Display  End With End Sub

ticktak
質問者

お礼

アドバイスありがとうございます。 しかし家のPCでは「プロシージャの呼び出し、または引数が不正です。」が発生し途方に暮れております。明日会社のPCで再トライしてみます。

ticktak
質問者

補足

会社のPCでも同様のエラーが発生し、一旦諦めました。ご協力いただいたこと感謝します。

関連するQ&A