Office関連

段落内改行を一括置換するOutlookマクロ

段落内改行 置換 Outlook マクロ」といったキーワードでのアクセスがありました。

恐らくメール本文内にある段落内改行(Shift + Enter)を通常の改行(Enter)にマクロを使って置換したい方の検索だと思われます。

この手の処理はWordで行うことが多く、Wordの資料を検索すると下記のようなページがすぐに見つかります。

・段落内で改行されている箇所を、通常の改行に変更したい
https://121ware.com/qasearch/1007/app/servlet/relatedqa?QID=011686

この作業をWordマクロに直したものが下記コードになります。

Public Sub SampleWord()
  Dim r As Word.Range
  
  Set r = ActiveDocument.Range(0, 0)
  With r.Find
    .Text = "^l" '任意指定の行区切り(段落内改行)
    .Replacement.Text = "^p" '段落記号
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchByte = False
    .MatchAllWordForms = False
    .MatchSoundsLike = False
    .MatchWildcards = False
    .MatchFuzzy = False
    .Execute Replace:=wdReplaceAll
  End With
End Sub

あとはこれをOutlook用に書き換えれば良いだけですが、Outlookのメール エディタとしてWordを利用している場合は、さほど難しくはありません。

Option Explicit

Public Sub SampleOutlook()
  Dim r As Object
  Const wdFindContinue = 1
  Const wdReplaceAll = 2
  
  With Application.ActiveInspector
    If .IsWordMail = True And .EditorType = olEditorWord Then
      Set r = .WordEditor.Range(0, 0)
      With r.Find
        .Text = "^l" '任意指定の行区切り(段落内改行)
        .Replacement.Text = "^p" '段落記号
        .Forward = True
        .Wrap = wdFindContinue
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchByte = False
        .MatchAllWordForms = False
        .MatchSoundsLike = False
        .MatchWildcards = False
        .MatchFuzzy = False
        .Execute Replace:=wdReplaceAll
      End With
    End If
  End With
End Sub

InspectorオブジェクトのWordEditorプロパティからは、WordのDocumentオブジェクトが取得できるので、これを使えばWord用のコードをほとんどそのまま動かすことができます。

ただし、Wordを参照設定していないとWord固有の定数やオブジェクトがそのままでは使えませんので、Constステートメントで定数を宣言しておく、固有オブジェクト型の変数を「Object」型の変数に置き換えておく、といった作業が必要になります。

関連Webページ

Office 2016 Preview for Windowsのサポート情報まとめ前のページ

徹底的にSymbol(シンボル)フォントをチェックするWordマクロ次のページ

関連記事

  1. Office アドイン

    Office用アプリではalertやconfirmが使えない?

    JavaScriptでメッセージや確認ダイアログを表示する際には「al…

  2. Office関連

    組み込み定数を列挙するVBAマクロ

    定数の名前や値を調べたい、そんなときはTypeLib Informat…

  3. アイコン一覧

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

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

  4. アイコン一覧

    Office 2013 アイコン一覧(K,L)

    ・Office 2013 アイコン一覧 NUM…

  5. Office関連

    「入門レベルでは決して足りない実務に必須のスキルとは ExcelVBA 実戦のための技術」レビュー

    久しぶりにVBA参考書籍のレビューです。今回は沢内晴彦氏が執筆され…

  6. Office アドイン

    [Office用アプリ]カレンダーから日付入力

    カレンダーから日付を選ぶだけで選択中のセルに日付を入力できるコンテンツ…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

Translate

Chinese (Simplified)Chinese (Traditional)EnglishFrenchGermanJapaneseKoreanRussianSpanish

最近の記事

アーカイブ

PAGE TOP