Bob은 문서의 모든 그래픽을 계산해야합니다. 일부 그래픽은 인라인이고 일부는 부동입니다. 일부는 그림으로 삽입되었고 일부는 Word의 그리기 도구를 사용하여 만들어졌습니다. Bob은 문서에 150 ~ 200 개의 그래픽이 있다고 의심하지만 빠른 계산 방법을 원합니다.

그래픽 수를 얻기 위해 시도 할 수있는 몇 가지 방법이 있습니다. 첫 번째는 간단한 검색 및 바꾸기를 사용하는 것입니다. ^ g를 검색하고 ^ &로 바꾸면됩니다. 그러면 모든 그래픽을 찾아서 발견 된 것으로 대체합니다. 즉, 문서에 변경 사항이 없습니다. 그러나 Word는 작업이 완료되면 얼마나 많은 “대체”가 이루어 졌는지 알려줍니다. 이 개수는 문서의 그래픽 수입니다.

이 접근 방식의 문제점은 문서 내의 인라인 이미지 만 계산한다는 것입니다. 드로잉 레이어에서 아무것도 “찾아서 바꾸지”않습니다. 모든 이미지를 얻으려면 다른 접근 방식을 시도해야합니다. 예를 들어 Word의 이동 기능을 사용할 수 있습니다. F5 키를 눌러 찾기 및 바꾸기 대화 상자의 이동 탭을 표시합니다. 화면 오른쪽에서 그래픽을 선택하면 다음 버튼을 클릭하여 문서의 그래픽을 단계별로 살펴볼 수 있습니다. 많은 그래픽이있는 경우 상자에 +150과 같은 것을 입력하고 이동을 클릭하면됩니다. 사용 가능한 경우 해당 그래픽 번호로 이동 한 다음 나머지 번호를 단계별로 진행하면서 계속 계산할 수 있습니다.

이 접근 방식은 찾기 및 바꾸기 접근 방식보다 그래픽을 찾는 데 더 좋습니다. 그러나 문서에서 그래픽을 배치 할 수있는 위치가 이동으로 잡히지 않기 때문에 완벽하지는 않습니다.

(또는 솔직히 Go To와 동일한 찾기 메커니즘을 사용하는 Object Browser에 의해.)이 접근 방식은 인라인 및 드로잉 레이어에있는 그래픽을 찾습니다. 그러나 머리글이나 바닥 글과 같은 다른 위치에서는 찾을 수 없습니다. 그것들을 찾아서 카운트에 포함 시키려면 매크로를 사용해야합니다. 다음은보다 포괄적 인 그래픽 수를 제공하는 매크로입니다.

Sub CountGraphics()

Const sBkMk = "ReturnHere"



Dim lngSections As Long     Dim lngSectionCounter As Long     Dim lngMainDocInlineShapes As Long     Dim lngMainDocShapes As Long     Dim lngHdrInlineShapes As Long     Dim lngHdrShapeRange As Long     Dim lngFtrInlineShapes As Long     Dim lngFtrShapeRange As Long     Dim lngTotalInlineShapes As Long     Dim lngTotalShapes As Long     Dim sMsgText As String

Application.ScreenUpdating = False

'Get the number of sections in the document.

lngSections = ActiveDocument.Sections.Count

'Get the number of inline objects and     'shape objects in the main document     lngMainDocInlineShapes = ActiveDocument.InlineShapes.Count     lngMainDocShapes = ActiveDocument.Shapes.Count

'Insert a bookmark to return to this place in the document.

ActiveDocument.Bookmarks.Add sBkMk, Selection.Range

'Go to the first page of the document.

Selection.HomeKey wdStory, wdMove

'Cycle through all of the sections in the document     'looking in headers and footers for graphics     For lngSectionCounter = 1 To lngSections         'Go to the header of the current page         ActiveDocument.ActiveWindow.View.SeekView = wdSeekCurrentPageHeader         Selection.WholeStory         'Get the number of inline objects and shape objects         lngHdrInlineShapes = lngHdrInlineShapes _           + Selection.Range.InlineShapes.Count         lngHdrShapeRange = lngHdrShapeRange _           + Selection.Range.ShapeRange.Count

'Go to the footer of the current page         ActiveDocument.ActiveWindow.View.SeekView = wdSeekCurrentPageFooter         Selection.WholeStory         'Get the number of inline objects and shape objects         lngFtrInlineShapes = lngFtrInlineShapes _           + Selection.Range.InlineShapes.Count         lngFtrShapeRange = lngFtrShapeRange _           + Selection.Range.ShapeRange.Count

Selection.GoTo wdGoToSection, wdGoToNext     Next

'Go to the main body of the document.

ActiveDocument.ActiveWindow.View.SeekView = wdSeekMainDocument

'Enable automatic screen updates     Application.ScreenUpdating = True     Application.ScreenRefresh

'Go to the bookmark that was inserted earlier.

If ActiveDocument.Bookmarks.Exists(sBkMk) Then         Selection.GoTo wdGoToBookmark, , , sBkMk         ActiveDocument.Bookmarks(sBkMk).Delete     Else         MsgBox "The bookmark '" & sBkMk & "' does not exist."

End If

'Calculate the total number of inlineshape objects     'and (shape and shaperange) objects     lngTotalInlineShapes = lngMainDocInlineShapes _       + lngHdrInlineShapes + lngFtrInlineShapes     lngTotalShapes = lngMainDocShapes _       + lngHdrShapeRange + lngFtrShapeRange

'Include the values from the variables into the     'text of the message     sMsgText = vbTab & vbTab & "Inline Shapes" _       & vbTab & "Other Shapes" & vbCr _       & "Main Document:" & vbTab & lngMainDocInlineShapes _       & vbTab & vbTab & lngMainDocShapes & vbCr _       & "Headers:" & vbTab & vbTab & lngHdrInlineShapes _       & vbTab & vbTab & lngHdrShapeRange & vbCr _       & "Footers:" & vbTab & vbTab & lngFtrInlineShapes _       & vbTab & vbTab & lngFtrShapeRange & vbCr _       & "Total:" & vbTab & vbTab & lngTotalInlineShapes _       & vbTab & vbTab & lngTotalShapes & vbCr & vbCr _       & "Note: The values for the headers and the footers " _       & "could include duplicates."



'Display the results of the procedure.

MsgBox sMsgText End Sub

매크로는 주 문서의 그래픽 수뿐만 아니라 문서의 각 섹션을 단계별로 살펴보고 그래픽의 머리글과 바닥 글을 검사합니다. 반환 된 개수의 정확도에 영향을 줄 수있는이 매크로에 대해 기억해야 할 몇 가지 사항이 있습니다. 이러한 모든 항목은 Word에서 문서의 그래픽을 처리하는 방법의 일부이며 소포입니다.

  • 문서에 그리기 캔버스가 포함 된 경우 포함 된 개별 도형의 수에 관계없이 단일 그래픽 (모양 개체)으로 처리됩니다.

  • 별도의 모양은 별도로 계산됩니다. 별도의 모양이 함께 그룹화되면 단일 모양으로 계산됩니다.

마지막으로 그래픽 수를 얻을 수있는 또 다른 방법이 있습니다. 문서를 웹 페이지 (HTML 형식)로 저장하기 만하면됩니다. 이러한 방식으로 저장하는 과정의 일부로 Word는 문서의 그래픽 파일을 자체 폴더에 저장합니다. 그러면 폴더에있는 파일 수를 확인하기 만하면 문서에있는 그래픽 수를 알 수 있습니다. (HTML 형식으로 문서를 저장하는 방법은 다른 _WordTips_에서 다룹니다.)

_ 참고 : _

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

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

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

(Microsoft Word는 세계에서 가장 널리 사용되는 워드 프로세싱 소프트웨어입니다.)이 팁 (10387)은 Microsoft Word 97, 2000, 2002 및 2003에 적용됩니다. Word의 리본 인터페이스에 대한이 팁 버전 (Word 2007)을 찾을 수 있습니다. 이후) 여기 :

link : / wordribbon-Counting_All_Graphics [모든 그래픽 계산].