Бобу нужно подсчитать всю графику в документе. Часть графики является встроенной, а часть — плавающей. Некоторые из них были вставлены как изображения, а некоторые были созданы с помощью инструментов рисования в Word. Боб подозревает, что в документе содержится от 150 до 200 изображений, но он хотел бы получить способ быстро подсчитать.

Есть несколько вещей, которые вы можете попробовать для подсчета вашей графики. Первое, что нужно сделать — это использовать простой поиск и замену. Все, что вам нужно сделать, это найти ^ g и заменить его на ^ &. Это находит любое изображение и заменяет его тем, что было найдено. Другими словами, в вашем документе нет изменений. Однако Word сообщит вам, когда это будет сделано, о том, сколько «замен» было произведено. Это количество изображений в вашем документе.

Проблема с этим подходом заключается в том, что он учитывает только встроенные изображения в документе. Он ничего не «находит и не заменяет» на слое чертежа. Чтобы получить все изображения, вам нужно попробовать другой подход. Например, вы можете использовать функцию «Перейти к» в Word. Нажмите F5, чтобы открыть вкладку «Перейти» в диалоговом окне «Найти и заменить». Если вы выберете Графика в правой части экрана, вы сможете перемещаться по графике в документе, нажав кнопку Далее. Если у вас много графики, вы можете просто поместить что-то вроде +150 в поле и нажать «Перейти». Вы перейдете к этому графическому номеру, если он доступен, и затем сможете просмотреть оставшиеся, считая по мере продвижения.

Такой подход лучше при поиске графики, чем подход поиска и замены. Однако это не идеально, поскольку в вашем документе есть места, где можно разместить графику, которая не будет захвачена функцией Go To.

(Или, честно говоря, обозревателем объектов, который использует тот же механизм поиска, что и Go To.) Этот подход находит графику, которая является встроенной и находится на слое рисования. Однако он не находит их в других местах, например в верхних или нижних колонтитулах. Чтобы найти их и включить в подсчет, вам понадобится макрос. Ниже приведен макрос, который обеспечивает более подробное графическое подсчет:

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 — самая популярная программа для обработки текстов в мире.) Этот совет (10388) применим к Microsoft Word 2007, 2010, 2013 и 2016. Вы можете найти версию этого совета для старого интерфейса меню Word здесь: link: / word-Counting_All_Graphics [Подсчет всей графики].