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

    コンテンツコントロールに外部XMLのデータをマップするWordマクロ

    Word 2007で追加された機能「コンテンツコントロール」を使うと外…

  2. Office関連

    VBAの力量をはかる3つの質問

    先日、Twitterではけた氏の面白いツイートがありました。3…

  3. Office関連

    Office 2007のサポートが2017年10月10日に終了します。

    2007年1月にパッケージ版が発売されてから早10年、長らく活躍してき…

  4. Office関連

    SkyDriveの同期フォルダーのパスを取得するマクロ

    前回の記事ではSkyDriveの同期フォルダーのパスを取得するWord…

  5. Excel

    Google TTSで文字列を読み上げるExcelアドイン

    前回の記事で書いたGoogle TTSで文字列を読み上げるマクロ(言語…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP