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