Alinhar e ajustar imagens no Excel VBA

Objetivo: Apresentar procedimentos para alinhar e ajustar imagens no Excel VBA.

Alinhar imagens no Excel

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:

Alinhar imagens no Excel 1

Os procedimentos VBA criados realizam a seguinte alteração:

Alinhar imagens no Excel 2

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:

Alinhar imagens no Excel 3

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:

Alinhar imagens no Excel 4

Agora acione o VBA, lsAlinharAltura, para alinhar a altura, veja que o procedimento redimensiona as imagens e alinha pela primeira imagem.

Alinhar imagens no Excel 5

Agora selecione as imagens para alinhar na vertical e acione o procedimento VBA lsAlinharAEsquerda.

Alinhar imagens no Excel 6

A imagem fica conforme abaixo:

Alinhar imagens no Excel 7

Pronto, agora basta realizar o mesmo alinhamento para as imagens em marrom e todas elas estarão alinhadas.

Baixe a planilha

Abraço

Marcos Rieper


Marcos Rieper

Pai, marido, professor e consultor em Excel.

Obrigado por ler este artigo, este blog foi criado para difundir o conhecimento em Excel à todos.

Divulgamos novos artigos nas redes sociais, basta clicar nos ícones abaixo.

Excel não precisa ser complicado

Assine nossa newsletter e receba dicas práticas para dominar o excel