Questo sito utilizza cookie, anche di terze parti, per migliorare la tua esperienza e offrire servizi in linea con le tue preferenze. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsenti all’uso dei cookie

Rimani informato sugli aggiornamenti di SOS-OFFICE. Inserisci il tuo indirizzo e-mail: Informativa sulla privacy

Oggi ho "litigato" con Word: mi è stato inviato un documento oieno di immagini in linea con il testo da ridimensionare. Purtroppo Word tratta le immagin in linea con il testo come si trattasse di caratteri e non è possibile una selezione automatica multipla. Non avendo intenzione di dimensionare una immagine alla volta (ce ne erano un centinaio...) ho scritto una macro. Ve la propongo, potrebbe tornarvi utile

Option Explicit
Dim img As InlineShape


Public Sub ridimensiona()
For Each img In ActiveDocument.InlineShapes
   img.Width = CentimetersToPoints(7.93)
   
Next img
End Sub

La macro definisce un oggetto come inlineShape, quindi esegue un ciclo su tutti gli oggetti inlineShape del documento e ne definisce la larghezza, impostandola a 7,93 cm.

Io ho inserito la larghezza desiderata nel mio codice, nulla vieta di chiedere all'utente di fornirla con una input box.

Commenti   

Ulisse
#1 Ulisse 2020-02-17 14:16
Ciao Alessandra, puoi aiutarmi?
È possibile inserire una condizione per la quale si riesca a ridimensionare a 16cm SOLO le immagini di dimensione maggiore appunto a 16cm?
Il problema è che usando la tua soluzione, risolvo parte del problema ma contemporaneame nte immagini più piccole, che già mi vanno bene, vengono portate a 16cm alterando tutto il documento!

Prova ad includere l'istruzione

img.Width = CentimetersToPo ints(7.93)

in una istruzione if che verifica se la larghezza dell'immagine è minore di 16 cm

if img.Width < CentimetersToPo ints(16) then
img.Width = CentimetersToPo ints(7.93)
end if
Citazione
Joomla templates by a4joomla