Word 2010で3x6テーブルを作成するときに、下部セルに簡単な=SUM(ABOVE)
という式を入力しています。私の問題は、ユーザーが上記のいずれかのセルの値を変更したときに合計が自動調整/計算されることです。Wordで自動合計テーブル
誰もがVBAを使用してこれを行うためのマクロを作成する方法を知っていますか?
おかげ
Word 2010で3x6テーブルを作成するときに、下部セルに簡単な=SUM(ABOVE)
という式を入力しています。私の問題は、ユーザーが上記のいずれかのセルの値を変更したときに合計が自動調整/計算されることです。Wordで自動合計テーブル
誰もがVBAを使用してこれを行うためのマクロを作成する方法を知っていますか?
おかげ
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
私はそれを理解しました。開発者モードに入ると、ドキュメントにテキストボックスを追加し、マクロを使用してテキストボックスをリンクし、自動サムフィーチャを作成できます。