Bob doit compter tous les graphiques d’un document. Certains graphiques sont en ligne et certains flottent. Certains ont été insérés sous forme d’images et d’autres ont été créés à l’aide des outils de dessin de Word. Bob soupçonne qu’il y a quelque part entre 150 et 200 graphiques dans le document, mais il aimerait avoir un moyen d’obtenir un décompte rapide.

Il y a plusieurs choses que vous pouvez essayer pour obtenir votre nombre de graphiques. La première chose à faire est d’utiliser une simple recherche et remplacement. Tout ce que vous avez à faire est de rechercher ^ g et de le remplacer par ^ &. Cela trouve n’importe quel graphique et le remplace par tout ce qui a été trouvé. En d’autres termes, il n’y a aucune modification à votre document. Cependant, Word vous informe, une fois terminé, du nombre de « remplacements » effectués. Ce nombre correspond au nombre de graphiques de votre document.

Le problème avec cette approche est qu’elle ne compte que les images en ligne dans le document. Il ne «trouve et remplace» rien sur le calque de dessin. Pour obtenir toutes les images, vous devrez essayer une approche différente. Par exemple, vous pouvez utiliser la fonctionnalité Aller à de Word. Appuyez sur F5 pour afficher l’onglet Atteindre de la boîte de dialogue Rechercher et remplacer. Si vous sélectionnez Graphique dans la partie droite de l’écran, vous pouvez parcourir les graphiques du document en cliquant sur le bouton Suivant. Si vous avez un tas de graphiques, vous pouvez simplement mettre quelque chose comme +150 dans la boîte et cliquer sur Aller à. Vous passerez à ce numéro de graphique, s’il est disponible, et vous pourrez ensuite parcourir les autres, en comptant au fur et à mesure.

Cette approche est meilleure pour trouver des graphiques que l’approche de recherche et de remplacement. Ce n’est pas parfait, cependant, car il y a des endroits dans votre document où des graphiques peuvent être placés qui ne seront pas capturés par Go To.

(Ou, honnêtement, par l’Explorateur d’objets, qui utilise le même mécanisme de recherche que Aller à.) Cette approche trouve les graphiques qui sont en ligne et sur le calque de dessin. Cependant, il ne les trouve pas ailleurs, tels que les en-têtes ou les pieds de page. Pour les trouver et les inclure dans le décompte, vous devrez utiliser une macro. Voici une macro qui fournira un nombre de graphiques plus inclusif:

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

Notez que la macro obtient non seulement le nombre de graphiques dans le document principal, mais également les étapes à travers chaque section du document et examine les en-têtes et les pieds de page pour tous les graphiques. Il y a quelques points à retenir avec cette macro qui peuvent affecter la précision du comptage renvoyé. Tous ces éléments font partie intégrante de la façon dont Word traite les graphiques dans un document.

  • Si le document contient un canevas de dessin, il est traité comme un seul graphique (un objet forme), quel que soit le nombre de formes individuelles qu’il contient.

  • Les formes séparées sont comptées séparément. Lorsque des formes distinctes sont regroupées, elles sont comptées comme une seule forme.

Enfin, il existe une autre façon d’essayer d’obtenir un nombre de graphiques: enregistrez simplement votre document en tant que page Web (au format HTML). Dans le cadre du processus d’enregistrement de cette manière, Word enregistre les fichiers graphiques du document dans leur propre dossier. Il vous suffit ensuite de regarder le nombre de fichiers dans le dossier et vous aurez une bonne idée du nombre de graphiques contenus dans le document. (La façon dont vous enregistrez un document au format HTML est traitée dans d’autres WordTips.)

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites WordTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / wordribbon-WordTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

WordTips est votre source pour une formation Microsoft Word rentable.

(Microsoft Word est le logiciel de traitement de texte le plus populaire au monde.) Cette astuce (10388) s’applique à Microsoft Word 2007, 2010, 2013 et 2016. Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu de Word ici: lien: / word-Counting_All_Graphics [Counting All Graphics].