2017-02-17 8 views
0

Word 2010で3x6テーブルを作成するときに、下部セルに簡単な=SUM(ABOVE)という式を入力しています。私の問題は、ユーザーが上記のいずれかのセルの値を変更したときに合計が自動調整/計算されることです。Wordで自動合計テーブル

誰もがVBAを使用してこれを行うためのマクロを作成する方法を知っていますか?

おかげ

答えて

0

Excelの数式とは異なり、Wordのフィールドが自動的に更新されませんし、彼らがそうするようにする設定はありません。ドキュメント内の変更を傍受するVBAソリューションは、キーストロークごとにコードをトリガするため、実行可能ではありません。

は、優先順に、実用的なソリューションがあります。

オプション1 - 手動で文書を更新します。

Ctrl+A (select All) Then press F9 (update all document fields). 

あなたがしたいフィールド上に選択的に更新を行うこともできます。たとえば、テーブルの最後の行をマウスで選択してからF9を入力します。

オプション2 - Excel Tableを埋め込み、最後の行に式を使用します。テーブルが編集されると、Excelは自動的に式を更新します。

オプション3 - 4 - は、定期的にそう毎秒かを自分自身を呼び出す関数をVBAで自動アップデータを作成して、必要な場合は、すべての(または選択を更新変更インターセプトアプリケーションのWindowSelectionChangeイベント

' Code module ThisDocument 
Option Explicit 
Private WithEvents app As Word.Application 
Private Sub app_WindowSelectionChange(ByVal Sel As Selection) 
    If Sel.Range.InRange(Tables(1).Range) Then Fields.Update ' or: Tables(1).Fields.Update 
End Sub 
Private Sub Document_Open() 
    Set app = Me.Application 
End Sub 

オプション)フィールド。

' Code module ThisDocument 
Option Explicit 
Public Sub updateFields() 
    Fields.Update ' or: Tables(1).Fields.update 
    Application.OnTime Now + TimeSerial(0, 0, 1), "ThisDocument.updateFields" 
End Sub 
Private Sub Document_Open() 
    Application.OnTime Now + TimeSerial(0, 0, 1), "ThisDocument.updateFields" 
End Sub 
0

私はそれを理解しました。開発者モードに入ると、ドキュメントにテキストボックスを追加し、マクロを使用してテキストボックスをリンクし、自動サムフィーチャを作成できます。