1

コメント セクションが有効になっているドキュメントで VBA/マクロを実行すると、Word 2013 がクラッシュします。マクロは文字を検索し、コメント セクションとメイン ドキュメントで "" (空白) に置き換えます。これはSelection.Find.ExecuteAPI を使用して行われます。コメント セクションがない場合、またはマークアップが選択されていない場合、Word はクラッシュしません。

これは Windows 10 と Word 2013 上にあります。マクロは Word 2007 と Windows 7 でうまく動作します。

再現可能な手順:

  1. 1 つのテキストで簡単なドキュメントを作成し、コメントを追加します。

  2. サンプルのコメント テキストを次のように挿入します: (A : & (Enter) などのように縦に追加します)

    A: & B: & C: & D: & E: & F: & G: & H: & I: & J: & K: & L: & M: & N: &
    
  3. マクロを作成:

    Sub Test_Macro()
        ActiveWindow.View.SplitSpecial = wdPaneComments
        With Selection.Find
                .Text = "&"
                .Replacement.Text = ""
                .Forward = True
                .Wrap = wdFindStop
                .Format = False
                .MatchCase = False
                .MatchWholeWord = False
                .MatchWildcards = False
                .MatchSoundsLike = False
                .MatchAllWordForms = False
        End With
    
        Selection.HomeKey unit:=wdStory
    
        If Selection.Find.Execute = True Then
           'We found the slash.  Delete it.
            Selection.TypeBackspace
        End If
    
    End Sub
    
  4. マクロを実行します (&はクリアされます)。再び実行を続けます。Word は 10 回のうち 2 ~ 3 回クラッシュします&

4

1 に答える 1

0

本文中に質問が見当たりませんのでお答えできませんが、Microsoft Word 2013 が でクラッシュすることは確認しておりますActiveDocument.Content.Find.Execute。マクロを実行する前に手動で置換ダイアログを実行して、これを回避する必要がありました。これは(ほぼ)毎回機能しました。今、空の取り消しレコードで実行されている Execute と関係があるというこの投稿を見つけました。元に戻すレコードが作成された直後に、ドキュメントの最後の段落にテキストを追加するコード行を挿入することで、この問題を回避することができました。

于 2018-04-30T12:39:45.237 に答える