내부 링크 계산 (Microsoft Word)
Word를 사용하면 문서에서 외부 문서 또는 현재 문서 내의 다른 위치에 대한 링크를 설정할 수 있습니다. Peter는 문서 내의 내부 링크 만 계산하는 방법을 찾고 있으며이를 수행 할 방법이 있는지 궁금합니다.
이렇게 할 수있는 유일한 방법은 매크로를 사용하여 문서의 각 하이퍼 링크를 단계별로 실행하는 것입니다. 다행히 Hyperlinks 컬렉션의 요소를 살펴보면 쉽게 수행 할 수 있습니다. 각 Hyperlink 개체에는 링크의 특성에 따라 설정할 수있는 다양한 속성이 있습니다. 특히 중요한 것은 Address 및 SubAddress 속성입니다.
주소 속성 (이름에서 알 수 있듯이)은 링크의 대상 주소입니다. 일반적으로 이것은 URL (/)과 비슷하지만 시스템에서 액세스 할 수있는 드라이브의 파일 이름이거나 전자 메일 주소 (mailto : [email protected]에서와 같이) 일 수도 있습니다. Address 속성은 여러 목적을 가질 수 있기 때문에 “http”접두사와 같은 알리는 문자의 존재를 구체적으로 확인할 수 없습니다. 접두사가없는 경우 링크는 시스템의 다른 파일을 참조 할 수 있으므로 현재 문서의 외부에있을 수 있습니다.
그러나 현재 문서 내의 책갈피에 대한 링크 인 경우 주소 필드가 비어있는 경우가 하나 있습니다. 비어 있으면 SubAddress 속성이 링크에서 참조되는 책갈피의 이름으로 설정됩니다. 물론 링크가 다른 문서의 특정 책갈피에 대한 것이라면 Address 및 SubAddress 속성이 모두 설정됩니다.
각 Hyperlink 개체와 함께 저장된 정보에 대한 아이디어를 얻으려면 다음의 짧은 매크로를 살펴보십시오. 각 링크를 단계별로 진행하고 각각에 대한 정보를 표시합니다.
Sub LinkInfo() Dim h As Hyperlink Dim sTemp As String For Each h In ActiveDocument.Hyperlinks sTemp = h.TextToDisplay & vbCrLf sTemp = sTemp & h.Address & vbCrLf sTemp = sTemp & h.SubAddress MsgBox sTemp Next h End Sub
따라서 문서 내의 내부 링크 (즉, 현재 문서 내의 책갈피에 대한 링크) 수를 확인하는 가장 쉬운 방법은 각 Hyperlink 개체의 Address 속성을 검사하는 것입니다.
속성이 비어 있으면 링크가 내부 링크라고 가정 할 수 있습니다.
Sub InternalLinks1() Dim h As Hyperlink Dim lInternal As Long lInternal = 0 If ActiveDocument.Hyperlinks.Count > 0 Then For Each h In ActiveDocument.Hyperlinks If h.Address = "" Then lInternal = lInternal + 1 Next hp End If MsgBox lInternal & " hyperlinks are internal" _ & " out of a total of " & ActiveDocument.Hyperlinks.Count End Sub
내부 링크에 대한 실제 대상 목록을 모으고 싶다면 For Each 루프 내에서 각 SubAddress 속성을 찾아 끝에 표시 한 항목에 추가하는 것이 매크로에 쉽게 추가 될 수 있습니다. 매크로.
물론 하이퍼 링크가 문서 본문에만 표시되는 것은 아닙니다. 머리글, 바닥 글, 미주 및 텍스트 상자와 같은 다른 문서 요소에 하이퍼 링크가있을 수도 있습니다. 다음 매크로 변형은 문서의 이러한 영역 (StoryRanges)에서 찾은 모든 링크를 계산합니다.
Sub InternalLinks2() Dim h As Hyperlink Dim lInternal As Long Dim lTotal As Long Dim aStory As Range lTotal = 0 lInternal = 0 For Each aStory In ActiveDocument.StoryRanges lTotal = lTotal + aStory.Hyperlinks.Count If aStory.Hyperlinks.Count > 0 Then For Each h In aStory.Hyperlinks If h.Address = "" Then lInternal = lInternal + 1 Next h End If Next aStory MsgBox lInternal & " hyperlinks are internal" _ & " out of a total of " & lTotal End Sub
_ 참고 : _
이 페이지 (또는 WordTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.
link : / wordribbon-WordTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요]
.
_WordTips_는 비용 효율적인 Microsoft Word 교육을위한 소스입니다.
(Microsoft Word는 세계에서 가장 인기있는 워드 프로세싱 소프트웨어입니다.)이 팁 (12814)은 Microsoft Word 2007, 2010 및 2013에 적용됩니다.