outlookのメールをExcelで作成するマクロ

このQ&Aのポイント
  • outlookのメールをExcelで作成する際の質問です。フォントを指定して、尚且つハイパーリンクもちゃんとはりつけられるようにするにはどうしたらよいでしょうか?
  • マクロを実行すると、最初にwordeditorで作成した「あいうえお」がMSP明朝で入力され、その後に住所、氏名、年齢のハイパーリンクが入力されます。
  • strMOJIで入力したハイパーリンクはハイパーリンクとして反応しますが、フォントが明朝になりません。また、wordeditorのTypeTextにハイパーリンクを貼り付けても文字として処理されてしまい、ハイパーリンクになりません。
回答を見る
  • ベストアンサー

outlookのメールをExcelで作成するマクロ

outlookのメールをExcelで作成する際の質問です。 以下のマクロを実行すると始めにwordeditorで作成した あいうえおがMSP明朝で入力され、そのあとに住所、氏名、年齢 ハイパーリンクが入力されます。 strMOJIの方で入力したハイパーリンクはちゃんとハイパーリンクとして 反応するのですが、フォントが明朝になりません。 逆にwordeditorのTypeTextにハイパーリンクを貼り付けても文字として処理されてしまい、ハイパーリンクになりません。 フォントを指定して、尚且つハイパーリンクもちゃんとはりつけられるように するにはどうしたらよいでしょうか? Sub test() Dim Ap As Object Dim M As Object Dim strMOJI As String Set Ap = CreateObject("outlook.application") Set M = Ap.CreateItem(0) strMOJI = vbCr & "住所:" & vbCr & "氏名:" & vbCr & "年齢:" & vbCr & _ "<file://>" M.BodyFormat = 2 M.To = "aaa@com" M.cc = "bbb@com" M.importance = 2 M.Subject = "test" M.Body = strMOJI M.display '#全部ワードで編集した方が分かりやすい? With Ap.ActiveInspector.wordeditor.Windows(1) With .Selection .Font.Name = "MS P明朝" .TypeText "あいうえお" End With End With Application.CutCopyMode = False End Sub

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

  • ベストアンサー
  • Prome_Lin
  • ベストアンサー率42% (201/470)
回答No.1

質問者がおやりになりたいこととは、違うのですが、「Outlook」側で、送信時のフォントを指定してしまうのはどうでしょうか? Outlook側で、「ファイル」→「オプション」→「メール」で、「次の形式でメッセージを作成する」:「HTML形式」か「リッチテキスト形式」→「ひな形を使用して、既定のフォントやスタイル、色、背景を変更します。」で、フォントを「MS P明朝」に設定します。 上記のプログラムでフォントを指定しても、もし送信されるメールが「テキスト形式」でしたら、フォントを指定しても意味はありません。 標準で送信するメールの形式は「テキスト形式」になっていませんか?

yyrd0421
質問者

お礼

お礼が遅くなり大変申し訳ありませんでした。 ご回答頂いた内容、非常に参考になりました。ありがとうございます。 今回私の確認不足で、私が質問に書いたマクロは、メール作成画面ではハイパーリンクにはなっていないのですが、送信して、受信者の方ではちゃんとハイパーリンクになっておりました。 なので、この質問自体が意味のない質問でした。 しかしながらProme_Linさんのご回答も頂けて結果的には非常に良かったです。 今後ともなにかありましたら よろしくお願いします。

関連するQ&A

  • excel 文字抽出マクロの編集についてですが・・・

    マクロで指定した文字を含むデータを抽出するマクロを 作っていたのですが、うまく作動しません。 どこが悪いか教えてください。 Sub 指定した文字データの抽出() Dim strMoji As String strMoji = InputBox("検索文字を入力してください") strMoji = "*" & strMoji & "*" Sheets("Sheet2").Activate Cells.Clear With Sheets("Sheet1") .Range("A2").AutoFilter Filde:=3, criterial:=strMoji .Range("A2").CurrentRegion.Copy _ Destination:=Sheets("Sheet2").Range("A2") .Range("A2").AutoFilter End With Sheets("Sheet2").Columns("A:D").AutoFit End Sub

  • マクロのメール作成について教えてください

    メール作成に関するマクロで教えて下さい。 下記のマクロで、件名と文章内の#○○○の○○○の部分には 毎回違う3ケタの数字が入ります。 これを例えば、エクセルのセルA1に101と入力されていたら 件名と文章内の○○○の部分を101にした状態でメールを起動させたいです。 また最後の名前○○の部分には、セルA2にデータ入力規則でリストを作成し 選んだ名前を選択すると○○の部分が反映された状態でメールが起動するようにしたいです。 それと文章内の書体をMS P明朝にするにはどうすればよいでしょうか? 教えて下さい。 Sub メールマクロ() Dim oApp As Object Dim objMAIL As Object Dim strMOJI(1) As String Dim n As Long On Error Resume Next Set oApp = GetObject(, "Outlook.Application") On Error GoTo 0 If oApp Is Nothing Then Set oApp = CreateObject("Outlook.Application") oApp.GetNamespace("MAPI").GetDefaultFolder(6).display End If Set objMAIL = oApp.CreateItem(0) strMOJI(0) = "【秘/Confidential】 " & vbCrLf & _ "テスト様" & vbCrLf & _ "CC.関係各位様" & vbCrLf & _ " " & vbCrLf & _ "いつもお世話になっております。" & vbCrLf & _ "#○○○ G1 G2の計測を行いました" & vbCrLf & _ "以上です。" & vbCrLf & _ "EMAX株式会社" & vbCrLf & _ "名前○○" objMAIL.To = "E-Mail_Address_Here" objMAIL.Subject = "#○○○ G1 G2 計測結果" objMAIL.BodyFormat = 3 'リッチテキスト objMAIL.Body = strMOJI(0) objMAIL.display Set objMAIL = Nothing Set oApp = Nothing End Sub

  • エクセルVBAでメールに画像添付

    エクセル2010です。 以下のようなVBAでOutlookメールを作成しているのですが、本文の中に画像を添付する方法がわかりません。 下記で言えば strMOJI(0) と strMOJI(1) の間に画像を張り付けたいのです。 画像ファイルを添付するのではなく画像として見えるようにしたいのです。 どのように書けばよろしいでしょうか? Sub TEST001()   Dim oApp As Object   Dim objMAIL As Object   Dim strMOJI(1) As String   On Error Resume Next   Set oApp = GetObject(, "Outlook.Application")   On Error GoTo 0   If oApp Is Nothing Then     Set oApp = CreateObject("Outlook.Application")   End If   Set objMAIL = oApp.CreateItem(0)   strMOJI(0) = "こんにちは!" & vbCrLf & _   "テストです。。" & vbCrLf & _   "よろしくおねがいします。" & vbCrLf   strMOJI(1) = vbCrLf & _   "以上です。" & vbCrLf & _   "ABC株式会社" & vbCrLf & _   "emaxemax"   objMAIL.To = ""   objMAIL.CC = "xxxx@xxx.co.jp"   objMAIL.Subject = "テスト"   objMAIL.Body = strMOJI(0) & strMOJI(1)   objMAIL.Display End Sub

  • エクセルVBAでアウトルックメールの差出人変更

    エクセル2010です。 エクセルからVBAでアウトルックメールを作成するのですが、差出人を自分ではなく部門名のアドレスにしたいのです。 手動ではなんなく差出人を変更できるのですが、VBAでの方法がわかりません。 ネット検索してみると、 SendUsingAccount = Session.Accounts("アカウント名") でできるようなのですが、アカウント名がよくわかりません。 アカウント名に、手動で差出人を変更する際に「名前の選択」で指定する部門の名前や部門のアドレスなどを入れてみましたがオブジェクトが必要とのエラーになってしまいます。 どうすればよいのでしょうか? Sub TEST001() Dim oApp As Object Dim objMAIL As Object Dim strMOJI(1) As String On Error Resume Next Set oApp = GetObject(, "Outlook.Application") On Error GoTo 0 If oApp Is Nothing Then Set oApp = CreateObject("Outlook.Application") End If Set objMAIL = oApp.CreateItem(0) strMOJI(0) = "こんにちは!" & vbCrLf & _ "差出人変更のテストです。。" & vbCrLf & _ "よろしくおねがいします。" & vbCrLf strMOJI(1) = vbCrLf & _ "以上です。" & vbCrLf & _ "ABC株式会社" & vbCrLf & _ "emaxemax" objMAIL.To = "" objMAIL.CC = "xxxx@xxx.co.jp" objMAIL.Subject = "テスト" objMAIL.Body = strMOJI(0) & strMOJI(1) ' objMAIL.SendUsingAccount = Session.Accounts("ABC Gyomubu")'ここでエラー objMAIL.Display End Sub

  • エクセルVBAでOutlookメールの書式を変える

    エクセル2010です。 下記のようなコードでOutlookメールを作成したとき、たとえば  "ABC株式会社" だけを赤字で太文字にするにはどう書けばよいのでしょうか? Sub TEST001()   Dim oApp As Object   Dim objMAIL As Object   Dim strMOJI(1) As String   On Error Resume Next   Set oApp = GetObject(, "Outlook.Application")   On Error GoTo 0   If oApp Is Nothing Then     Set oApp = CreateObject("Outlook.Application")   End If   Set objMAIL = oApp.CreateItem(0)   strMOJI(0) = "こんにちは!" & vbCrLf & _   "色付けテストです。" & vbCrLf & _   "よろしくおねがいします。" & vbCrLf   strMOJI(1) = vbCrLf & _   "以上です。" & vbCrLf & _   "ABC株式会社" & vbCrLf & _   "emaxemax"   objMAIL.To = "xxxx@xxx.co.jp"   objMAIL.CC = "yyyy@xxx.co.jp"   objMAIL.Subject = "テスト"   objMAIL.Body = strMOJI(0) & strMOJI(1)   objMAIL.Display End Sub

  • エクセルでOutlookのメールを作成

    エクセルでOutlookのメールを作成しようとしています。 一応、以下のコードでできるようです。 質問は、メール本文中の ABC という文字だけを赤い太字にする方法です。教えてください。 Sub test01() Dim mi As Object ' MailItem Dim wdDoc As Object ' Word.Document Dim olApp As Object ' Outlook.Application Set olApp = CreateObject("Outlook.Application") Set mi = olApp.CreateItem(0) mi.To = "test@abc.co.jp" ' 送り先 mi.BodyFormat = 2 ' メールを HTML 形式にする mi.Display ' メールを表示する Set wdDoc = olApp.ActiveInspector.WordEditor ' メールの Word エディタを取得する wdDoc.Windows(1).Document.Range.Text = "本文本文本文本文本文1" _ & vbCrLf & "本文本文本文本文本文2" _ & vbCrLf & "本文ABC本文本文3" With wdDoc.Windows(1).Document.Range.Font .Name = "Meiryo UI" ' メール本文のフォントを "Meiryo UI" .Size = 11 ' フォントサイズを 11 に設定する End With End Sub

  • エクセルのマクロについて

    エクセル2010を使用しています。 工程表を作成するため、以下のマクロを組もうと苦戦しています。 任意のセルを選択し、マクロを実行すると選択したセルに線を引き 線の上部にテキストボックスで文字を入力できるようにするマクロを 作成しようとしています。 また、テキストボックスは文字入力後、大きさの自動調整をかけようと しています。 線を引くところまでは、うまくいったのですがテキストボックスの挿入→入力待機 →入力後、大きさの自動調整(幅)までのマクロがよくわかりません。 可能であれば、任意の選択したセルの中央に配置をしたいです。 お知恵をお貸しください。よろしくお願いします。 koutei() Dim SentakuTop As Single Dim SentakuLeft As Single Dim SentakuWidth As Single Dim SentakuHeight As Single Dim SentakuAddress As String Dim X0, Y0, X1, Y1 As Variant SentakuAddress = Selection.Address(ColumnAbsolute:=False, RowAbsolute:=False) With ActiveSheet.Range(SentakuAddress) SentakuTop = .Top SentakuLeft = .Left SentakuWidth = .Width SentakuHeight = .Height End With X0 = SentakuLeft Y0 = SentakuTop + SentakuHeight / 2 X1 = SentakuLeft + SentakuWidth Y1 = Y0 With ActiveSheet.Shapes.AddLine(X0, Y0, X1, Y1).Line .ForeColor.RGB = RGB(0, 0, 0) .Weight = 1 .BeginArrowheadStyle = msoArrowheadOval .EndArrowheadStyle = msoArrowheadOval End With End Sub

  • マクロがうまくいきません!

    office2000を使用してます。 Excelでボタンをクリックするのみであらかじめ作られたメッセージがメールで送信されるマクロを作成中です。 Private Sub CommandButton2_Click() Dim OLApp As Outlook.Application Dim mItem As Outlook.MailItem Set OLApp = CreateObject("Outlook.Application.9") Set mItem = OLApp.CreateItem(olMailItem) With mItem .Recipients.Add("abcd@abcd.co.jp").Type = olTo .Subject = "明日の件" .BodyFormat = olFormatPlain .Body = "明日、久しぶりに会えるのを" & _ "楽しみにしています。" & vbCr & _ "それじゃ。" .Send End With Set mItem = Nothing Set OLApp = Nothing End Sub このように作成したのですがうまくいきません。 エラーで「オブジェクトは、このプロパティまたはメソッドをサポートしていません」と出ます。参照設定も行ったのですが、どうしてでしょうか?どなたかお願いします。

  • マクロ Outlook送信メールにエクセルの表を貼り付ける方法

    こんにちは。 送りたいメールの形は 数行の文章のあとに、表を貼り付け、また数行の文章という形式です。 Outlookメールでメールを立ち上げて Comment1と2は文章ですのでエクセルのコラムを引っ張ってくるようにしているのですが、 Comment3部分に別のエクセルにある表をメタ貼りし、Comment4でまた文書を引っ張ってくるとさせたいのですが Comment3部分の動きが出来ません。 Dim OlApp As Outlook.Application Dim mItem As Outlook.MailItem Dim cell As Range Dim Subj As String Dim EmailAddr As String Dim Recipient As String Dim Msg As String Dim Message As String Dim Sender As String Dim Comments As String Dim Comments2 As String Dim report As String '日付の設定 DMY = Range("b_date") DM = Format(Range("b_date").Value, "mmdd") Worksheets("mail").Activate 'Create Outlook object Set OutlookApp = New Outlook.Application 'Get the data Subj = Range("B69") & "_" & DM EmailAddr = Range("B63") CCAddr = Range("B66") Comment1 = Range("H63").Value Comment2 = Range("H65").Value Comment3 = この辺りがわかりません Comment4 =Range("H67").Value 'Compose message Msg = "<font face=""Arial""><font size=2>" Msg = Msg & Comment1 & "<BR><BR><BR>" Msg = Msg & Comment2 & "<BR><BR><BR>" Msg = Msg & Comment3 & "<BR><BR><BR>" Msg = Comment4 & "<BR><BR><BR><BR>" Msg = Msg & "Best regards," & "<BR><BR>" Msg = Msg & "</font></font>" 'Create Mail Item Set mItem = OutlookApp.CreateItem(olMailItem) With mItem .To = EmailAddr .CC = CCAddr .BCC = BCCAddr .Subject = Subj .HTMLBody = Msg .Display End With End Sub どなたかご存知ではないでしょうか? 毎回で申し訳ございませんが、どうぞ宜しくお願い致します。

  • Outlookのメールを送信するマクロ

    お世話になっております。 Microsoft Outlook2003使用で メール送信のマクロを見様見真似で作ってみたのですが、本文部分がうまくいきません(Best regardsしか表示されません)。 どうすれば正しく反映されるでしょうか? シートのB1にToアドレスを記入していてTo_addressと名前付 以下、Cc_addressとSubjectも同様にしています。 本文の文章は何行かあり、途中で空白行も入れたいのですが、そこまでまだ手がつけられていません。 本文の文章が3行あるとすると、このマクロではComment1、Comment2、Comment3と名前付しています。 Sub SendEmail() Dim OlApp As Outlook.Application Dim mItem As Outlook.MailItem Dim cell As Range Dim Subj As String Dim EmailAddr As String Dim Recipient As String Dim Msg As String Dim Message As String Dim Sender As String Dim Comments As String Dim Comments2 As String Dim report As String Worksheets("Sheet1").Activate 'Create Outlook object  Set OutlookApp = New Outlook.Application 'Get the data Subj = Range("Subject") EmailAddr = Range("To_address") CCAddr = Range("Cc_address") Body = Range("Comment1") & ("Comment2") & ("Comment3") 'Compose message Msg = Msg & Comment1 & vbCrLf & vbCrLf Msg = Msg & Comment2 & vbCrLf & vbCrLf Msg = Msg & "Best regards," & vbCrLf & vbCrLf 'Create Mail Item Set mItem = OutlookApp.CreateItem(olMailItem) With mItem .To = EmailAddr .CC = CCAddr .BCC = BCCAddr .Subject = Subj .Body = Msg .Display End With End Sub 宜しくお願い致します。

専門家に質問してみよう