모두 선택시 머리글 및 바닥 글 포함 (Microsoft Word)
Tim은 템플릿의 모든 필드를 업데이트하는 간단한 매크로를 만들었습니다. 매크로에는 Ctrl + A를 누르는 것처럼 전체 문서를 선택하는 단계가 포함되어 있습니다. 이 단계에서는 머리글과 바닥 글을 선택하지 않으며 Tim은 해당 위치에 업데이트 할 필드가있을 수 있다는 점을 걱정합니다. 그는 모두 선택할 때 머리글과 바닥 글을 포함하는 방법이 있는지, 아니면 매크로가 머리글 또는 바닥 글 영역의 필드를 업데이트하는 다른 방법이 있는지 궁금합니다.
간단한 대답은 필드가있을 수있는 모든 다른 Word 영역에서 보이도록 매크로 코드를 수정해야한다는 것입니다. “모두 선택”접근 방식을 사용할 때의 문제는 주 문서의 텍스트 만 선택한다는 것입니다. 머리글, 바닥 글 및 기타 여러 요소는 문서의 모든 텍스트와 함께 선택되지 않도록 별도의 레이어에 유지됩니다.
기본 텍스트와 머리글 및 바닥 글의 필드를 단순히 업데이트하려면 다음과 같은 기술을 사용해야합니다.
Sub MyUpdateFields1() ActiveDocument.StoryRanges(wdMainTextStory).Fields.Update ActiveDocument.StoryRanges(wdPrimaryFooterStory).Fields.Update ActiveDocument.StoryRanges(wdPrimaryHeaderStory).Fields.Update End Sub
문서의 여러 레이어를 “스토리”라고하며 자체 컬렉션 내에서 유지 관리합니다. 이 간단한 매크로는 본문, 바닥 글 및 머리글이 포함 된 스토리의 필드를 매우 빠르게 업데이트하지만 다른 스토리 (레이어)가 있습니다.
업데이트가 필요한 필드가있을 수 있습니다. 다음 매크로는 유형에 관계없이 각 스토리를 살펴보고 필요한 업데이트를 수행합니다.
Sub MyUpdateFields2() Dim story As Word.Range For Each story In ActiveDocument.StoryRanges Do story.Fields.Update ' Check linked stories as linked stories are not independent Set story = story.NextStoryRange Loop Until (story Is Nothing) Next End Sub
하지만 정말 완전하고 싶다면 살펴 봐야 할 다양한 스토리 레이어 이상의 것이 있습니다. 예를 들어, 업데이트가 필요한 텍스트 상자에 포함 된 일부 필드가있을 수 있습니다. 필드가 위치 할 수있는 다른 모든 위치를 처리하려면보다 포괄적 인 매크로가 필요합니다. 다음 예에서 필드에 대해 확인할 수있는 문서의 여러 요소에 유의하십시오.
Sub MyUpdateFields3() Dim doc As Document ' Pointer to Active Document Dim wnd As Window ' Pointer to Document's Window Dim lngMain As Long ' Main Pane Type Holder Dim lngSplit As Long ' Split Type Holder Dim lngActPane As Long ' ActivePane Number Dim rngStory As Range ' Range Objwct for Looping through Stories Dim TOC As TableOfContents ' Table of Contents Object Dim TOA As TableOfAuthorities 'Table of Authorities Object Dim TOF As TableOfFigures 'Table of Figures Object 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 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_는 비용 효율적인 Microsoft Word 교육을위한 소스입니다.
(Microsoft Word는 세계에서 가장 널리 사용되는 워드 프로세싱 소프트웨어입니다.)이 팁 (522)은 Microsoft Word 97, 2000, 2002 및 2003에 적용됩니다. Word의 리본 인터페이스에 대한이 팁 버전 (Word 2007)을 찾을 수 있습니다. 이후) 여기 :
link : / wordribbon-Including_Headers_and_Footers_when_Selecting_All [모두 선택시 머리글 및 바닥 글 포함]
.