Cómo numerar secuencialmente imágenes en un documento de Word

En ocasiones quizás nos hayamos encontrado con un documento repleto de imágenes y necesitamos asignarles una numeración a las mismas de una forma rápida. Pues bien, Esta macro que os presentamos realiza la tarea por vosotros,

Nuestra macro identificará cada imagen que tengáis en vuestro documento y le asignará un nombre basado en un número que irá correlativo. Del mismo modo, si eliminamos una imagen, esto no afectará a la numeración ya que se volverán a renumerar todas de modo que siempre tengan un número secuencial y correlativo a la serie comenzada. La macro, al estar basada en campos precisará que se actualicen los mismos para poder trabajar correctamente. Acordaros siempre de actualizar mediante el atajo de teclado Ctrl + E para seleccionar todo el documento, y luego tecla F9.

Si ya tenemos todas las imágenes en un documento y queremos ponerles al pie una secuencia numérica utilizaremos el siguiente código,

 

 

 

 Sub Insertar_numeracion_Image()

 Dim x As Object
 For Each x In ActiveDocument.InlineShapes

 With x.Select

 With Selection
   .InsertAfter vbCr & "imagen Nº" _
     & vbCr
    .MoveDown Unit:=wdLine, Count:=1
    .TypeBackspace
    .Fields.Add Range:=Selection.Range, _
    Type:=wdFieldSequence, _
    Text:="AUTONUM \* Arabic", _
    PreserveFormatting:=True
    .TypeText Text:=" " & vbTab
    'Las siguientes lineas al gusto _
     se pueden suprimir o poner una u otra
    '.EndOf Unit:=wdStory o .HomeKey Unit:=wdStory


 End With
 End With


 Next

 End Sub

 

Si vamos a agregar imagenes a nuestro documento y queremos numerarlas una a una situandonos en el pie de la imagen por ejemplo, entonces  deberemos utilizar además esta macro >>

 

   Sub Insertar_field_Autonum() 


   With Selection
   .TypeText Text:=" imagen Nº" & vbCr
   .TypeBackspace
    .Fields.Add Range:=Selection.Range, _
    Type:=wdFieldSequence, _
    Text:="AUTONUM \* Arabic", _
    PreserveFormatting:=True
   End With

 End sub

 

La única precaución a tomar para ejecutar esta macro es poner el curso al pie de la imagen que queremos empezar a numerar, ya que de otro modo insertaría la numeración a partir de donde tengamos el cursor.

 

La macro funcionará si tenemos las imágenes en línea con el texto, pero no si son flotantes.

 
Si tuviéramos imágenes de este tipo, tendríamos que cambiar la siguiente línea correspondiente a la primera macro;

For Each x In ActiveDocument.InlineShapes

Por esta otra,

For Each x In ActiveDocument.Shapes

Y eso es todo, os recordamos que tenéis a vuestra disposición nuestros foros para cualquier duda que os pudiera surgir.

 

 

Top