テキストボックスのフィールドの更新(Microsoft Word)
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 [テキストボックス内のフィールドの更新]
。