Office関連

Outlookの予定本文の一部を文字装飾するVBAマクロ

Excelの質問掲示板を見たら、「Outlookの予定本文の一部をマクロで太字にしたい」との質問がありました。

似たような質問に5年ほど前に回答したことがあるのですが、この手の処理は“WordEditor = WordのDocumentオブジェクト経由で処理するのが鉄板”だと思います。

Option Explicit

Public Sub Sample()
  Dim app As Object 'Outlook.Application
  Dim itm As Object 'Outlook.AppointmentItem
  Dim ins As Object 'Outlook.Inspector
  Dim doc As Object 'Word.Document
  Const olAppointmentItem = 1
  Const olEditorWord = 4
  Const olSave = 0
  Const wdBlue = 2
  
  'CreateObject("Outlook.Application")では上手く処理できない場合があるため、
  '先にOutlookを起動してからGetObjectで取得
  '※Shellで起動しても上手くいかない場合は、手動で事前にOutlookを起動しておく
  On Error Resume Next
  Set app = GetObject(, "Outlook.Application")
  If app Is Nothing Then
    Shell "OUTLOOK", vbNormalFocus
    Do
      Set app = GetObject(, "Outlook.Application")
      DoEvents
    Loop While app Is Nothing
  End If
  On Error GoTo 0
  
  '予定作成
  Set itm = app.CreateItem(olAppointmentItem)
  With itm
    .Subject = "テスト予定"
    .Start = DateAdd("d", 1, Now())
    .Display
    Set ins = .GetInspector
  End With
  
  'WordEditor(Document)経由で予定文字装飾
  If ins.EditorType = olEditorWord Then
    Set doc = ins.WordEditor
    doc.Range.InsertAfter "あいうえお" & vbNewLine & _
                          "かきくけこ" & vbNewLine & _
                          "さしすせそ"
    With doc.Range(6, 11).Font
      .ColorIndex = wdBlue
      .Bold = True
    End With
  End If
  
  '作成した予定を保存して終了
  itm.Close olSave
  app.Quit
End Sub

コード中にコメントとして記載していますが、Excel VBAから処理をする際、「CreateObject(“Outlook.Application”)」で新規にOutlookを起動して処理しようとした場合、エラーが発生して上手く処理できないことがあったため、Shell関数で先にOutlookを起動してから処理を行うようにしています。

文字装飾を行う部分に関しては、色々な書き方があるため、その時々に応じた処理をするのが良いと思います(上記コードではWordのRangeオブジェクト経由で文字装飾しています)。

「もし宇宙人が地球レポートをまとめたら」動画公開前のページ

「Google I/O 報告会 2017 東京」に参加しました。次のページ

関連記事

  1. Office関連

    Office 365 unified APIをVBAから呼び出す

    前回の記事で、VBAからOffice 365 APIを呼び出す手順につ…

  2. アイコン一覧

    Office 2013 アイコン一覧(O)

    ・Office 2013 アイコン一覧 NUM…

  3. Office関連

    Excel Services JavaScript APIを試してみました(1)

    前回の記事で紹介した「ExcelMashup.com」、このサイトによ…

  4. Office関連

    [Word 2013]表形式のデータ入力にはコレが便利!?「コンテンツ繰り返しコントロール」の紹介

    Wordにはユーザー入力フォームを作るのに便利な機能「コンテンツ コン…

  5. Office関連

    Presentation Translatorが公開されました。

    下記記事で紹介している「Microsoft Translator アド…

コメント

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP