Aplicaciones y herramientas informáticas, internet y otros sucedáneos informáticos
por
#267024
Si alguien sabe como seleccionar todas las imágenes de un documento y aplicarle una propiedad (por ejemplo reducirlas) le agradecería que me lo contase. Gracias.
por
#267025
si lo que quieres es reducir (comprimir) todas las imagenes de un doc word, clicka encima de cualquier imagen con boton derecho -> formato de imagen, pestaña de imagen y dale a comprimir, en el menu que se te abrirá señala aplicar a todas las imagenes del documento, puedes seleccionar la opcion de 96ppp que es una resolucion buena para ver en pantalla o web no tanto para imprimir (yo es la que suelo emplear, porque la verdad es que es bastante buena).........espero que te sirva esto, para seleccionar todas las imagenes y realizar otra operación deberas programarte una macro me temo......
por
#267035
almpunk escribió:para seleccionar todas las imagenes y realizar otra operación deberas programarte una macro me temo......


Pues sí. Finalmente lo que quería era hacer más pequeñas en tamaño (más estrechas y menos altas) un montón de imágenes (pantallazos) generadas automáticamente con un programa de cálculo de estructuras. Son unas 300 imágenes así que ir una por una era un horror. Para reducirlas al 90%, como bien dices, la macros era bastante sencilla lo que pasa es que no estoy aún muy puesto:

Código: Seleccionar todoSub Reducir90()
   Dim Var As Object
   For Each Var In Selection.InlineShapes
     Var.Height = (90 * CCur(Var.Height)) / 100
     Var.Width = (90 * CCur(Var.Width)) / 100
   Next
End Sub

Basta con seleccionar todo y ejecutar la macro. Muchas gracias de todas maneras por tu truco.
Avatar de Usuario
por
#267126
Hola,

Aprovechando la macro de mendinho, creo que puede ser útil fijar un ancho a las imágenes seleccionadas, por si alguien le interesa dejo mi primera macro en word.

Código: Seleccionar todoSub EstablecerAnchoImagenes()
    Dim Var As InlineShape
    Dim Ancho_cm As Double
    Dim Ancho As Double
    Dim n As Integer
    Dim NumImagenes As Integer
    Dim FactorConversion As Double
       
    NumImagenes = Selection.InlineShapes.Count
    If NumImagenes = 0 Then
        MsgBox "No hay ninguna imagen en la selección.", , "Selección contenido"
        Exit Sub
    End If
   
    FactorConversion = 40.05
    Ancho_cm = CCur(InputBox("Indique el nuevo ancho de las imágenes [cm]:", "Establecer ancho imagen"))
    Ancho = Ancho_cm * FactorConversion
    n = 0

    For Each Var In Selection.InlineShapes
        Var.LockAspectRatio = msoTrue
        Var.Height = Ancho
       
        n = n + 1
        If n Mod 5 = 0 Then
            Application.StatusBar = "Procesando imágenes... " & Round(n / NumImagenes * 100, 0) & "%"
        End If
    Next
   
    Application.StatusBar = ""

    If n = 1 Then
        MsgBox "Se ha modificado 1 imagen.", , "Ancho imágenes"
    Else
        MsgBox "Se han modificado " & n & " imágenes.", , "Ancho imágenes"
    End If
End Sub
Avatar de Usuario
por
#288439
mendinho escribió: Para reducirlas al 90%, como bien dices, la macros era bastante sencilla lo que pasa es que no estoy aún muy puesto:
Código: Seleccionar todoSub Reducir90()
   Dim Var As Object
   For Each Var In Selection.InlineShapes
     Var.Height = (90 * CCur(Var.Height)) / 100
     Var.Width = (90 * CCur(Var.Width)) / 100
   Next
End Sub


Está muy bien la macro, pero no deja todas las imágenes al 90% de su tamaño original, sino al 90% de como estaban, es decir, si una imagen estaba insertada al 50% la deja al 45%.
Avatar de Usuario
por
#288476
berobreo escribió:
mendinho escribió: Para reducirlas al 90%, como bien dices, la macros era bastante sencilla lo que pasa es que no estoy aún muy puesto:
Código: Seleccionar todoSub Reducir90()
   Dim Var As Object
   For Each Var In Selection.InlineShapes
     Var.Height = (90 * CCur(Var.Height)) / 100
     Var.Width = (90 * CCur(Var.Width)) / 100
   Next
End Sub


Está muy bien la macro, pero no deja todas las imágenes al 90% de su tamaño original, sino al 90% de como estaban, es decir, si una imagen estaba insertada al 50% la deja al 45%.

Hola,

Puedes probar de esta forma:

Código: Seleccionar todoSub Reducir90_original()
    Dim Var As Object
    Dim Reduccion As Double
   
    Reduccion = 0.9 '90%
   
    For Each Var In Selection.InlineShapes
        Var.LockAspectRatio = msoTrue
        Var.ScaleHeight = 100
        Var.ScaleWidth = 100
        Var.Height = Reduccion * CCur(Var.Height)
        Var.Width = Reduccion * CCur(Var.Width)
    Next
End Sub
Avatar de Usuario
por
#288494
wenner escribió:
Código: Seleccionar todoSub Reducir90_original()
    Dim Var As Object
    Dim Reduccion As Double
   
    Reduccion = 0.9 '90%
   
    For Each Var In Selection.InlineShapes
        Var.LockAspectRatio = msoTrue
        Var.ScaleHeight = 100
        Var.ScaleWidth = 100
        Var.Height = Reduccion * CCur(Var.Height)
        Var.Width = Reduccion * CCur(Var.Width)
    Next
End Sub

Gracias, wenner, eso es lo que buscaba.
Ahora me queda arreglar una cosa rara que hace:escala las imágenes dos veces, dejándolas en un 81%.
Edito: si quito una de las dos asignaciones (Var.Height o Var.Width) lo deja al 90%. Quizá tenga que ver con que tenga activado por defecto escalado proporcional y a cambiar una cambie él solo la otra.
por
#360738
disculpen pero para hacerlo en power point desde vba para seleccionar todas las imagenes de una presentacion
por
#361323
Holas a tod@s.
la verdad me sirvió montones el código acá encontrado y más el del amigo mendinho solo le agregue una linea de código y le quite otra y Voilá... (wala) y para lo que hago es el mejor que código nunca antes hecho (jajaja) que hago? tengo una pagina en Word de solo imágenes, todas del mismo tamaño y las quiero poner de 5 cm de ancho y 5 cm de largo entonces para hacer eso, con sus códigos, me quedó asi:

Código: Seleccionar todoSub Reducir90()
Dim Var As Object
Selection.WholeStory  'esta  linea es nueva y selecciona al iniciar la macro las jpg
For Each Var In Selection.InlineShapes
Var.Height = (41 * CCur(Var.Height)) / 100
Next
End Sub


1) yo no quiero trabajar mucho, entonces agregue la linea que me selecciona las imágenes por mi, en el del amigo mendinho, yo tenia que seleccionar las imágenes para poder correr la macro, ahora no y para lograr la medida correcta me va mejor solo cambiando el Height de la imagen y multiplicandolo por 41 me da ideal, gracias al amigo mendinho que me ha hecho la vida mas maravillosa, chaos y gracias ;-)
Palabras clave
Temas similares

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

Permisos de mensaje

No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro