Linda는 인터넷 리소스에 대한 많은 (1,800 개 이상의) 하이퍼 링크가 포함 된 Word 문서를 가지고 있습니다. 그녀는 모든 하이퍼 링크를 변환하여 웹의 URL에 절대적이지 않고 USB 드라이브의 상대 위치를 가리켜 야합니다. HTML 파일의 이름은 웹에서와 마찬가지로 USB 드라이브에서도 동일하며 변경되는 HTML 파일의 위치 일뿐입니다. Linda는 변환을 수행하는 가장 좋은 방법에 대해 궁금해합니다.

가장 좋은 방법은 매크로를 사용하여 변환하는 것입니다. 문서의 각 하이퍼 링크는 VBA를 통해 쉽게 액세스 할 수있는 Hyperlinks 컬렉션에 저장됩니다. 이를 통해 하이퍼 링크 모음을 단계별로 살펴보고 각각의 주소를 검사 한 다음 수정할 수 있습니다. 다음은 이러한 매크로의 예입니다.

Sub ConvertHyperlinks()

Dim sNewBase As String     Dim sFile As String     Dim sNewFile As String     Dim sChanged As String     Dim sNotChanged As String     Dim sTemp As String     Dim J As Integer     Dim h As Hyperlink

sNewBase = "c:\myplace\"

sChanged = ""

sNotChanged = ""



For Each h In ActiveDocument.Hyperlinks         sTemp = h.Address         If Left(sTemp, 5) = "https:" Then             sFile = ""

For J = Len(sTemp) To 2 Step -1                 If Mid(sTemp, J, 1) = "/" Then                     sFile = Right(sTemp, Len(sTemp) - J)

Exit For                 End If             Next J

If sFile > "" Then                 sNewFile = sNewBase & sFile                 h.Address = sNewFile                 sChanged = sChanged & sTemp & " (changed to " & _                   sNewFile & ")" & vbCrLf             Else                 sNotChanged = sNotChanged & sTemp & vbCrLf             End If         Else             sNotChanged = sNotChanged & sTemp & vbCrLf         End If     Next h

Documents.Add     Selection.TypeText "The following hyperlinks were modified:" & vbCrLf     Selection.TypeText sChanged & vbCrLf & vbCrLf     Selection.TypeText "The following hyperlinks were not modified:" & vbCrLf     Selection.TypeText sNotChanged & vbCrLf End Sub

매크로는 Hyperlinks 컬렉션을 단계별로 실행하여 시작합니다. 각 주소는 sTemp 변수에 할당되며 “https :”로 시작하는지 확인합니다. 일부 하이퍼 링크 (예 : 전자 메일 주소 또는 기존 파일에 대한 하이퍼 링크)는 이러한 문자로 시작되지 않습니다.

일치하는 항목이 있으면 코드가 해당 주소에서 뒤로 이동하여 해당 주소의 마지막 슬래시를 찾습니다. 발견되면 sFile은 마지막 슬래시 이후의 모든 항목과 동일하게 설정되며 이는 HTML 파일과 동일 함을 의미합니다.

여기서 흥미로운 점은 워드 문서에 하이퍼 링크를 만들 때 Word가 입력 한 내용과 실제로 하이퍼 링크에 저장된 내용에 대해 약간의 처리를 수행한다는 것입니다. 예를 들어 문서에 다음을 입력한다고 가정 해 보겠습니다.

www.Tips.net

Word는이를 웹 사이트로 자동 인식하고 하이퍼 링크로 변환합니다. (물론 자동 URL 변환을 수행하도록 Word를 설정했다고 가정합니다.) 생성 된 하이퍼 링크에 실제로 저장된 주소를 보면 다음이 표시됩니다.

https://www.Tips.net/

이 주소는 “https :”로 시작하기 때문에 매크로는 처리 가능한 주소로 간주합니다. 그러나 마지막 슬래시 문자를 찾는 주소를 뒤로 이동하는 루프는 맨 끝에서 찾습니다. 이것은 다음 코드 때문에 sFile이 비어 있음을 의미합니다 :

sFile = Right(sTemp, Len(sTemp) - J)

sTemp 및 J의 길이는 문자열의 마지막 문자에 대해 정확히 동일하므로 sFile은 맨 오른쪽에있는 0 자 (비어 있음을 의미)를 포함합니다. 결론은 파일 이름이 포함되지 않으므로 원래 URL이 다른 것으로 변환되지 않는다는 것입니다.

시스템에서 매크로가 제대로 작동하도록하려면 처리 된 주소의 시작 부분에 추가 할 내용을 포함하도록 sNewBase 문자열을 변경해야합니다. 작성된대로 파일 시작 부분에 추가되는 기본 문자열은 “c : \ myplace \”입니다. 따라서 “`link : / privacy”는 “c : \ myplace \ privacy”로 변경됩니다. 이 변환 된 주소는 엄격하게는 상대 하이퍼 링크가 아닙니다. 상대 하이퍼 링크는 시작 부분에 c : \ 문자가 없으므로 “\ myplace \ privacy”와 같은 형식이됩니다. 다시 말하지만, 변환 된 하이퍼 링크가 원하는대로 보이도록 sNewBase의 값을 원하는대로 변경할 수 있습니다.

매크로를 실행하는 데 오래 걸리지 않습니다. 문서에있는 하이퍼 링크 수에 관계없이 매우 빠릅니다. 매크로가 완료되면 수정 된 하이퍼 링크와 수정되지 않은 하이퍼 링크를 보여주는 새 문서가 생성됩니다.

_ 참고 : _

이 페이지 (또는 WordTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.

https :-wordribbon.tips.net-WordTipsMacros [새 브라우저 탭에서 해당 특별 페이지를 열려면 여기를 클릭하세요]`.

_WordTips_는 비용 효율적인 Microsoft Word 교육을위한 소스입니다.

(Microsoft Word는 세계에서 가장 인기있는 워드 프로세싱 소프트웨어입니다.)이 팁 (12931)은 Microsoft Word 2007, 2010, 2013, 2016, 2019 및 Office 365의 Word에 적용됩니다.