Hoje vamos ensinar um truque que já foi pedido algumas vezes por nossos leitores: Como redimensionar imagens com a simplicidade de 1 clique.
A tarefa é muito útil para aqueles que trabalham com imagens em suas planilhas, muitas imagens na verdade. Imagine alguém que insira umas 50 imagens em um relatório e depois precise ajustar as dimensões uma a uma. Perderia horas e horas, mas com nosso supertruque fará isso me menos de 2 segundos.
Confira aqui nosso curso completo e gratuito sobre VBA
Como sempre, vamos usar nosso bom e velho VBA para resolver estas questões que estão além do alcance das funções nativas do Excel. Para que tudo funcione você vai fazer o seguinte:
Vá até a seção de edição de VBA através do atalho Alt + F11. No menu à esquerda clique com o botão direito em 'Microsoft Excel Objetos' e vá em 'inserir' e depois em 'módulo'.
Nesta nova janela você vai colocar o código
Sub AjustaTamanho()
For Each sh In ActiveSheet.Shapes
If sh.Name Like "*Pict*" Then
ActiveSheet.Shapes.Range(Array(sh.Name)).Select
With Selection
.Top = sh.TopLeftCell.Top
.Left = sh.TopLeftCell.Left
.ShapeRange.Height = 150
.ShapeRange.Width = 180
End With
End If
Next
End Sub
Note que este código contém algumas particularidades, vamos a elas:
1 - O Excel irá sempre fazer o redimensionamento PROPORCIONAL e para isso utilizará somente 1 dos aspectos, ou altura ou largura.
Você irá informar qual deseja através das seguintes linhas:
.ShapeRange.Height = 150
.ShapeRange.Width = 180
A primeira delas diz respeito à altura, e a segunda à largura. Por padrão o Excel escolherá SEMPRE aquela que está mais abaixo, ou seja, largura, no caso do exemplo acima. Mas e se você quiser utilizar a altura, ou seja, a linha de cima?
Neste caso é só fazer ele ignorar a linha de baixo. E isso é bem fácil, você só precisa colocar uma aspa simples (‘) antes do início da linha. Veja que ela, inclusive, muda para a cor verde.
2 - Segundo nosso código o Excel está programado para alinhar a imagem ao canto superior esquerdo da célula que que o mesmo canto estiver posicionado.
Confira no exemplo abaixo que a foto estava com o canto sobre a célula C3 e após usarmos a VBA ela foi alinhada. Veja o antes e o depois do processo:
Se quiser que isso não ocorra, você já sabe é só fazer ele ignorar as respectivas linhas com a nossa conhecida aspa simples:
3 - E por último, como você já deve ter notado, os valores depois do sinal de igual nas linhas de largura e altura são os tamanhos.
.ShapeRange.Height = 150
.ShapeRange.Width = 180
Como você verá abaixo no nosso exemplo, pode inserir um botão para facilitar o uso. Veja aqui como criar seu botão e atribuir à sua macro.
Agora sim, com tudo programado é só clicar no botão ou executar manualmente o VBA e todas as fotos serão redimensionadas. Veja o código em ação:
Até a próxima
😕 Poxa, o que podemos melhorar?
😃 Boa, seu feedback foi enviado!
✋ Você já nos enviou um feedback para este texto.