2017-04-18 15 views
1
Private Sub Document_Change(ByVal Target As Range) 
Set table = ActiveDocument.Tables(1) 
If Not Intersect(table, Target) Is Nothing Then 
Target.AutoFormat ApplyColor: Red 
End If 
End Sub 

私は次のコードを持っていますが、VBA Wordでは動作しません。 誰か助けてくれますか?Wordのテーブルのイベント変更

答えて

3

Excel VBAからコードをコピーして、少し再構築しようとしたとします。 ExcelとWord VBAにはいくつかの違いがあります。

  1. Intersectは、Word VBAには存在しません。
  2. DocumentChangeイベントは期待どおりに動作しません。新しいドキュメントが作成されたとき、既存のドキュメントが開かれたとき、または別のドキュメントがアクティブなドキュメントになったときに発生します。 (https://msdn.microsoft.com/en-us/library/office/ff822189.aspx

あなたが赤で変更する場合は、次の操作を行うことがあります。

  1. 録音wholeDocumentを静的な文字列に。
  2. 新しい文字列に再度変更レコードがある場合。
  3. 文字列を比較し、違いを色分けします。

しかし、単語がChangeというイベントを期待している限り、これはちょっと難しいです(Excelなど)。したがって、VBAコードを自動的に数回実行する必要があります。

関連する問題