Objetivo: Apresentar procedimentos para alinhar e ajustar imagens no Excel VBA.
O Excel já possui uma função para alinhar imagens que você pode usar selecionando as imagens e clicando em Formatar->Alinhar e selecionar uma das opções, porém, esta função não realiza todos os alinhamentos que necessitamos.
As funções apresentadas neste artigo realizam o redimensionamento e o alinhamento, tanto vertical, quanto horizontal, das imagens conforme a primeira imagem selecionada.
Veja a imagem:
Os procedimentos VBA criados realizam a seguinte alteração:
Perceba como as imagens mudaram de tamanho e também estão com a mesma distância tanto verticalmente quanto na horizontal.
Abaixo os códigos dos procedimentos criados para o alinhamento:
'Define as dimensões de altura e largura das imagens
Sub lsCorrigeDimensoes(ByVal shpOrigem As Shape, ByRef shpAlterar As Shape)
shpAlterar.Height = shpOrigem.Height
shpAlterar.Width = shpOrigem.Width
End Sub
'Alinhar á esquerda as imagens
Sub lsAlinharAEsquerda()
Dim Shp1 As Shape
Dim Shp2 As Shape
Dim x As Integer
Dim y As Integer
x = Windows(1).Selection.ShapeRange.Count
For y = 1 To x
If Shp1 Is Nothing Then
Set Shp1 = Windows(1).Selection.ShapeRange(y)
Else
Set Shp2 = Windows(1).Selection.ShapeRange(y)
Shp2.Left = Shp1.Left
Shp2.Top = Shp1.Top + Shp1.Height + 10
lsCorrigeDimensoes Shp1, Shp2
Set Shp1 = Shp2
End If
Next y
End Sub
'Alinhar a altura das imagens
Sub lsAlinharAltura()
Dim Shp1 As Shape
Dim Shp2 As Shape
Dim x As Integer
Dim y As Integer
x = Windows(1).Selection.ShapeRange.Count
For y = 1 To x
If Shp1 Is Nothing Then
Set Shp1 = Windows(1).Selection.ShapeRange(y)
Else
Set Shp2 = Windows(1).Selection.ShapeRange(y)
Shp2.Top = Shp1.Top
Shp2.Left = Shp1.Left + Shp1.Width + 10
lsCorrigeDimensoes Shp1, Shp2
End If
Next y
End Sub
Veja neste artigo como copiar os procedimentos acima e incluir na sua pasta pessoal de Macros neste artigo: http://guiadoexcel.com.br/habilitando-a-guia-desenvolvedor-e-copiando-procedimentos-vba-sub-da-internet
Veja neste outro artigo como criar botões de atalho para os procedimentos criados para que eles fiquem conforme abaixo: http://guiadoexcel.com.br/criar-botoes-de-atalho-para-macros-e-procedimento-vba.
Realizamos a inclusão dos botões para estas funções conforme abaixo:
Após a inclusão dos procedimentos VBA Excel você já pode utilizá-los. Para alinhar as imagens na horizontal selecione as imagens que serão selecionadas em linha, selecionamos duas:
Agora acione o VBA, lsAlinharAltura, para alinhar a altura, veja que o procedimento redimensiona as imagens e alinha pela primeira imagem.
Agora selecione as imagens para alinhar na vertical e acione o procedimento VBA lsAlinharAEsquerda.
A imagem fica conforme abaixo:
Pronto, agora basta realizar o mesmo alinhamento para as imagens em marrom e todas elas estarão alinhadas.
Baixe a planilhaAbraço
Marcos Rieper










