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関連

    Excel REST APIをPowerShellから呼び出す方法

    以前Excel REST APIをVBAから呼び出す方法を紹介しました…

  2. Office関連

    Office製品のフィードバックって本当に反映されるの?

    今年の1月に、WordやExcel等のOffice製品で、UI上の不具…

  3. Office アドイン

    [Office用アプリ]画像を挿入する。

    DocumentオブジェクトのsetSelectedDataAsync…

  4. Office関連

    Wikipediaの検索予測キーワードの一覧を取得するVBAマクロ

    Wikipediaのサーチボックスにキーワードを入力すると、入力したキ…

  5. アイコン一覧

    Office 2013 アイコン一覧(R)

    ・Office 2013 アイコン一覧 NUM…

  6. Excel

    Google翻訳で文字列を翻訳するマクロ

    ※ 2016/2 時点では下記の方法はもう使用できなくなっています。V…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP