Jayは、ドキュメントのテキストボックスにドキュメントプロパティフィールドが挿入されている状況にあります。 Ctrl + Aを使用してF9キーを押すと、ドキュメント内のすべてのプロパティドキュメントフィールドが更新されますが、この1つのフィールドはJayのアクションによって更新されません。ヘッダーとフッターのフィールドを更新するプロセスでも、テキストボックス内のフィールドは更新されません。

ジェイは、キーボードを使用してフィールドを手動で更新する方法があるのか​​、それともマクロを使用してフィールドを更新する方法があるのか​​疑問に思っています。

フィールドは、多くのドキュメント要素に配置できます。たとえば、メインドキュメントのテキスト、テキストボックス、ヘッダーまたはフッター、オートシェイプ、または特別なテーブルに含めることができます。 Ctrl + Aを押すとすべてのドキュメントが選択されますが、F9を押してもすべてのドキュメント要素のフィールドは更新されません。代わりに、マクロを使用して更新を行う必要があります。

マクロでテキストボックスのフィールドを更新するだけの場合は、これを行うのは簡単です。次のマクロは、ドキュメント内の各図形(テキストボックスとオートシェイプを含む)をステップスルーします

また、図形にテキストが含まれている場合は、図形に含まれているフィールドを更新します。

Sub UpdateTBFields()

Dim shp As Shape

For Each shp In ActiveDocument.Shapes         With shp.TextFrame             If .HasText Then                 .TextRange.Fields.Update             End If         End With     Next End Sub

このマクロをキーボードショートカットに割り当てると、ショートカットに触れるだけでフィールドを簡単に更新できます。もちろん、どこにいても、すべてのフィールドを更新する、より包括的なマクロを開発することをお勧めします。 (覚えておいてください。フィールドは任意の数のドキュメント要素に含めることができます。)その場合は、次のより包括的なバージョンのマクロを検討してください。

Public Sub UpdateAllFields()

Dim doc As Document     Dim wnd As Window     Dim lngMain As Long     Dim lngSplit As Long     Dim lngActPane As Long     Dim rngStory As Range     Dim TOC As TableOfContents     Dim TOA As TableOfAuthorities     Dim TOF As TableOfFigures     Dim shp As Shape

' Set Objects     Set doc = ActiveDocument     Set wnd = ActiveDocument.ActiveWindow

' get Active Pane Number     lngActPane = wnd.ActivePane.Index

' Hold View Type of Main pane     lngMain = wnd.Panes(1).View.Type

' Hold SplitSpecial     lngSplit = wnd.View.SplitSpecial

' Get Rid of any split     wnd.View.SplitSpecial = wdPaneNone

' Set View to Normal     wnd.View.Type = wdNormalView

' Loop through each story in doc to update     For Each rngStory In doc.StoryRanges         If rngStory.StoryType = wdCommentsStory Then             Application.DisplayAlerts = wdAlertsNone             ' Update fields             rngStory.Fields.Update             Application.DisplayAlerts = wdAlertsAll         Else             ' Update fields             rngStory.Fields.Update         End If     Next

'Loop through text boxes and update     For Each shp In doc.Shapes         With shp.TextFrame             If .HasText Then                 shp.TextFrame.TextRange.Fields.Update             End If         End With     Next

' Loop through TOC and update     For Each TOC In doc.TablesOfContents         TOC.Update     Next

' Loop through TOA and update     For Each TOA In doc.TablesOfAuthorities         TOA.Update     Next

' Loop through TOF and update     For Each TOF In doc.TablesOfFigures         TOF.Update     Next

' Return Split to original state     wnd.View.SplitSpecial = lngSplit

' Return main pane to original state     wnd.Panes(1).View.Type = lngMain

' Active proper pane     wnd.Panes(lngActPane).Activate

' Close and release all pointers     Set wnd = Nothing     Set doc = Nothing End Sub

注:

このページ(または_WordTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

link:/ wordribbon-WordTipsMacros [ここをクリックして、新しいブラウザタブでその特別なページを開きます]

_WordTips_は、費用効果の高いMicrosoftWordトレーニングのソースです。

(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(12344)は、Microsoft Word 2007、2010、2013、2016、2019、およびOffice 365のWordに適用されます。このヒントのバージョンは、ここにWordの古いメニューインターフェイス:

link:/ word-Updating_a_Field_in_a_Text_Box [テキストボックス内のフィールドの更新]