Denise는 매크로를 개발 중이며 삽입 지점이 책갈피 내에 있는지 확인하기 위해 테스트해야합니다. 삽입 지점이 책갈피에 있으면 책갈피를 수정하는 코드가 필요하기 때문에이 사실을 알아야합니다. 책갈피에 없으면 그녀의 코드에서 하나를 만들어야합니다.

이론적으로 프로세스는 매우 간단합니다. 다음과 같이 선택 항목에 북마크가 몇 개 있는지 확인하기 만하면됩니다.

If Selection.Bookmarks.Count > 0 Then     ' Inside a bookmark End If

선택 영역이 텍스트 범위이거나 선택 영역이 삽입 지점으로 축소되었는지 여부에 관계없이 작동합니다. 그러나 알아 두어야 할 몇 가지 잠재적 인 “잘못”이 있습니다. 첫 번째는 삽입 점이 책갈피의 바로 왼쪽에있는 경우 (책갈피의 시작 부분을 터치하기 만하면) Count 속성이 여전히 0보다 커진다는 것입니다. 이는 축소 된 삽입 점에 의해 정의 된 Selection이 삽입 지점 바로 오른쪽에 문자를 포함하는 것으로 간주됩니다.

두 번째로 알아야 할 것은 선택 항목이 축소 된 경우 Count 속성이 0 또는 1임을 신뢰할 수 없다는 것입니다. 실제로 책갈피가 “겹칠”수 있기 때문에 1보다 클 수 있습니다. ||| 따라서 삽입 지점이 동시에 둘 이상의 책갈피 내에 있어야합니다. 따라서 삽입 지점이있는 책갈피를 테스트하려면 코드가 필요할 수 있습니다. 이를 수행하는 가장 쉬운 방법은 다음과 같은 방식으로 책갈피의 Name 속성을 검사하는 것입니다.

Dim bFoundIt As Boolean Dim J As Integer

bFoundIt = False Selection.Collapse If Selection.Bookmarks.Count > 0 Then     ' Inside a bookmark     For J = 1 To Selection.Bookmarks.Count         If Selection.Bookmarks(J).Name = "DesiredName" Then             bFoundIt = True         End If     Next J End If

이 코드가 실행되면 삽입 지점이 원하는 책갈피 내에있는 경우에만 bFoundIt이 True가됩니다. 또한 선택한 텍스트 범위가 아닌 삽입 지점에 실제로 있는지 확인하기 위해 선택 영역을 축소하는 명령이 포함되어 있습니다.

세 번째 잠재적 인 “잘못”은 Word가 실제로 내부적으로 여러 목적을 위해 책갈피를 사용한다는 것입니다. 예를 들어, 인쇄 범위를 정의하는 데 사용하지만 이것이 유일한 장소는 아닙니다. 그러나 시스템 정의 북마크는 항상 밑줄로 시작하기 때문에 감지 할 수 있습니다. 이것은 앞의 코드에서는 문제가되지 않지만 (특히 특정 이름의 책갈피를 찾고 있기 때문에) 코드가 책갈피를 찾는 경우 잠재적 인 문제가 될 수 있습니다. 호출 가능한 함수로 작성된 다음 코드는 이러한 상황에서 도움이 될 수 있습니다.

Function InBookmark() As Boolean     ' Returns True if the insertion point is inside     ' any non-system bookmark. Also collapses the     ' selection to an insertion point

Dim bFoundIt As Boolean     Dim J As Integer

bFoundIt = False     Selection.Collapse

For J = 1 To Selection.Bookmarks.Count         If Left(Selection.Bookmarks(J).Name) <> "_" Then             bFoundIt = True         End If     Next J

InBookmark = bFoundIt End Function

매크로 내에서이 함수를 사용하려면 다음과 같이 간단한 것을 사용할 수 있습니다.

If Not InBookmark Then     ' create new bookmark End If

_ 참고 : _

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

link : / wordribbon-WordTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요].

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

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