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オブジェクト経由で文字装飾しています)。

関連記事

  1. Office関連

    Gmail APIを使ってメール送信するVBAマクロ(3)

    前回、前々回とGmail APIを扱ってきましたが、今回は前々回の記事…

  2. Office関連

    インストールされているアプリケーション一覧を取得するVBAマクロ

    端末にインストールされているアプリケーション名を調べる必要があったので…

  3. Office関連

    Excelで地理データや株価情報を取得する方法

    下記記事にある、今年3月に追加された「データの種類」機能を使って、Ex…

  4. Office関連

    Word 2013のアクセス キー一覧

    2013/10/24 追記:下記一覧表をPDFファイルにしました。…

  5. アイコン一覧

    Office 365アイコン(imageMso)一覧(E)

    Office 365のデスクトップ版Officeアプリケーション(Wo…

  6. Office関連

    「図のリセット」を実行するExcelマクロ

    Msdn フォーラムに「Excel2010-VBA 画像「図の書式設定…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

最近の記事

アーカイブ

RapidSSL_SEAL-90x50
PAGE TOP