5

選択したテキストの前後のスペースを削除する Outlook 用のマクロを作成しようとしています (マクロや VBA を作成したことはありません)。

これは、私が見つけた例からまとめたものです。

Sub FixParagraphSpacing()
    Dim objOL As Application
    Dim objDoc As Object
    Dim objSel As Object

    Set objOL = Application
    Set objDoc = objOL.ActiveInspector.WordEditor
    Set objSel = objDoc.Windows(1).Selection

    objSel.ParagraphFormat.SpaceBefore = 0
    objSel.ParagraphFormat.SpaceAfter = 0

    Set objOL = Nothing
    Set objDoc = Nothing
    Set objSel = Nothing
End Sub

問題は、コードが実行され、ほとんど何も起こらないことです。電子メールの本文には影響はありませんが、前後のスペースを手動で削除することはできません。Outlook は既に完了していると認識しているためです。

ここで何が欠けていますか?

アップデート

@KevinPopeの答えに基づいて、私の更新されたコードは次のとおりです。

Sub FixParagraphSpacing()
    Dim objOL As Application
    Dim sel As Object

    Set objOL = Application
    Set sel = objOL.ActiveInspector().WordEditor.Application.Selection

    For Each para In sel.Paragraphs
        para.SpaceBefore = 0
        para.SpaceAfter = 0
    Next para
End Sub

コードを実行する前に、[行と段落の間隔] の下に次のように表示されます。

間隔を削除

マクロを実行すると、次のように表示されます。

間隔を追加

残念ながら、これ以外にメールの本文に目に見える変更はありません。


リクエストごとのテキストのスクリーンショット:

ここに画像の説明を入力

4

3 に答える 3

2

段落書式を設定する前に、「Selection.WholeStory」を使用してみてください。それは私のために働いた。

于 2014-08-27T18:32:52.303 に答える
1

このようなものは、選択した段落の前後の行間隔を整理する必要があります:

Sub Test()
    Dim objOL As Application
    Dim sel As Object

    Set objOL = Application
    Set sel = objOL.ActiveInspector().WordEditor.Application.Selection

    sel.Paragraphs(1).SpaceBefore = 0
    sel.Paragraphs(1).SpaceAfter = 0
End Sub

これが機能しない場合はお知らせください。それを繰り返すことができます。

于 2013-03-20T20:26:11.817 に答える