Importar imagens em planilhas Excel VBA - Planilha importar imagens Gratuita

MR
Marcos Rieper

Especialista em Excel

11 de novembro de 2020 Atualizado 08 de julho de 2026 6 min de leitura
Importar-imagens-no-Excel-com-VBA

Importar imagens em planilhas Excel VBA - Planilha importar imagens Gratuita

É possível inserir imagens no Excel, isso todos sabemos. Mas como importar imagens em planilhas Excel de forma automática? Com VBA isso é possível.

Neste artigo e também na vídeo-aula, explico como a podemos realizar esta tarefa com um exemplo de um Relatório de Brigada de incêndio.

Este exemplo foi enviado por Marco Gonzaga e o código VBA para importar no Excel imagens pelo amigo Rodrigo Sant'Anna Lima. Obrigado pela sua colaboração.

Relatório de Brigada de Incêndio Excel

O nosso exemplo foi criado com base em um relatório de brigada de incêndio que existe internamente em muitas empresas.

O objetivo deste relatório é realizar uma avaliação dos equipamentos de segurança, registrar ocorrências e evidenciar as situações por meio de fotografias.

Impoartar imagens automaticamente no Excel com VBA

Esta planilha está pronta e disponível no download ao final da página, inclusive com o código fonte liberado.

Ela pode ser facilmente adaptada para Relatório da CIPA Excel ou qualquer outro relatório ou situação que necessite de evidências com fotos.

Importar Imagens no Excel automaticamente com VBA

O sistema permite que a integração seja realizada automaticamente conforme abaixo.

Basta clicar no botão de Inserir Imagens para que as imagens sejam inclusas em cada uma das células.

No exemplo são permitidas até 22 imagens, mas pode ser facilmente ajustado para que importe mais imagens, o importante é entender bem o processo.

Importar imagens em planilhas Excel VBA

No VBA há várias técnicas envolvidas:

  • Selecionar pasta
  • Importar imagens por célula
  • Ajustar cada uma das imagens no tamanho de cada uma das células

Importar Imagens para o Excel automaticamente com VBA

Se você já entende de VBA, veja o código abaixo. Ele é o procedimento que realiza a importação das imagens automaticamente para as células utilizando VBA.

Sub Carregar_AutoImagens_Passagem_Serviço_Gocil()

    Dim Pict
    Dim ImgFileFormat As String
    Dim Celula As String
    Celula = "A95"    ' celula que será inserido a imagem
    ImgFileFormat = "Image Files JPEG (*.jpeg),*.jpeg,Image Files JPG (*.jpg),*.jpg, Image Files PNG (*.png),*.jpg, Image Files GIF (*.gif),*.gif, Image Files BMP (*.bmp),*.bmp"
    
    'Pict = Application.GetOpenFilename(ImgFileFormat, False, False, MultiSelect:=True)
    
    Pict = Application.GetOpenFilename(ImgFileFormat, False, False, False, True)
    
    'If Pict = False Then End
    
    If IsArray(Pict) Then 'IF ARRAY
    
        If UBound(Pict) <= 22 Then 'IF I
        
            j = 1
    
            For i = LBound(Pict) To UBound(Pict) 'FOR I
            
                Select Case i 'Cobertura de 22 imagens
                
                    Case 1 To 3
                        'IMAGEM: largura = 4 colunas; altura= 11 linhas
                        Application.ActiveSheet.Shapes.AddPicture Pict(i), False, True, Range(Celula).Left, _
                        Range(Celula).Top, Range(Celula).Width * 4, Range(Celula).Height * 11
                        
                        j = j + 4
                        Celula = Chr(64 + j) & "95"
                                       
                    
                    Case 4 To 6
                        If Mid(Celula, 1, 1) = "M" Then
                            j = 1
                            Celula = Chr(64 + j) & "107"
                        End If
                        'IMAGEM: largura = 6 colunas; altura= 11 linhas
                        Application.ActiveSheet.Shapes.AddPicture Pict(i), False, True, Range(Celula).Left, _
                        Range(Celula).Top, Range(Celula).Width * 4, Range(Celula).Height * 11
                        
                        j = j + 4
                        Celula = Chr(64 + j) & "107"
                        
                        
                        Case 7 To 9
                        If Mid(Celula, 1, 1) = "M" Then
                            j = 1
                            Celula = Chr(64 + j) & "119"
                        End If
                        'IMAGEM: largura = 4 colunas; altura= 11 linhas
                        Application.ActiveSheet.Shapes.AddPicture Pict(i), False, True, Range(Celula).Left, _
                        Range(Celula).Top, Range(Celula).Width * 4, Range(Celula).Height * 11
                        
                        j = j + 4
                        Celula = Chr(64 + j) & "119"
                    
                    
                     Case 10 To 12
                        If Mid(Celula, 1, 1) = "M" Then
                            j = 1
                            Celula = Chr(64 + j) & "131"
                        End If
                        'IMAGEM: largura = 4 colunas; altura= 11 linhas
                        Application.ActiveSheet.Shapes.AddPicture Pict(i), False, True, Range(Celula).Left, _
                        Range(Celula).Top, Range(Celula).Width * 4, Range(Celula).Height * 11
                        
                        j = j + 4
                        Celula = Chr(64 + j) & "131"
                      
                      
                      Case 13 To 15
                        If Mid(Celula, 1, 1) = "M" Then
                            j = 1
                            Celula = Chr(64 + j) & "143"
                        End If
                        'IMAGEM: largura = 4 colunas; altura= 11 linhas
                        Application.ActiveSheet.Shapes.AddPicture Pict(i), False, True, Range(Celula).Left, _
                        Range(Celula).Top, Range(Celula).Width * 4, Range(Celula).Height * 11
                        
                        j = j + 4
                        Celula = Chr(64 + j) & "143"
                        
                        
                        Case 16 To 18
                        If Mid(Celula, 1, 1) = "M" Then
                            j = 1
                            Celula = Chr(64 + j) & "155"
                        End If
                        'IMAGEM: largura = 4 colunas; altura= 11 linhas
                        Application.ActiveSheet.Shapes.AddPicture Pict(i), False, True, Range(Celula).Left, _
                        Range(Celula).Top, Range(Celula).Width * 4, Range(Celula).Height * 11
                        
                        j = j + 4
                        Celula = Chr(64 + j) & "155"
                        
                        
                        Case 19 To 21
                        If Mid(Celula, 1, 1) = "M" Then
                            j = 1
                            Celula = Chr(64 + j) & "167"
                        End If
                        'IMAGEM: largura = 4 colunas; altura= 11 linhas
                        Application.ActiveSheet.Shapes.AddPicture Pict(i), False, True, Range(Celula).Left, _
                        Range(Celula).Top, Range(Celula).Width * 4, Range(Celula).Height * 11
                        
                        j = j + 4
                        Celula = Chr(64 + j) & "167"
                        
                         

                End Select

            Next i 'FOR I
        
        Else 'IF I
        
            MsgBox "Selecionar apenas 22 imagens"
           
            
            End
        
        End If 'IF I
    
    End If 'IF ARRAY
End Sub

Entendendo o VBA de importação de imagens no Excel

Na parte do código abaixo a variável do tipo String recebe os tipos de campos que serão exibidos quando a pasta for selecionada. Isto é importante porque se houverem outros arquivos na pasta, apenas arquivos destas extensões serão importados.

  ImgFileFormat = "Image Files JPEG (*.jpeg),*.jpeg,Image Files JPG (*.jpg),*.jpg, Image Files PNG (*.png),*.jpg, Image Files GIF (*.gif),*.gif, Image Files BMP (*.bmp),*.bmp"

O código abaixo realiza a abertura da pasta do janela do Windows para selecionar arquivos.

  Pict = Application.GetOpenFilename(ImgFileFormat, False, False, False, True)

Na linha de código abaixo nós temos a verificação se foram selecionadas imagens da pasta.

  If IsArray(Pict) Then

No ponto abaixo é então iniciado o Loop entre entre todas as imagens do array VBA

  For i = LBound(Pict) To UBound(Pict)

E neste ponto abaixo nós temos a adição das imagens em cada uma das células com a definição dos tamanhos de acordo com o tamanho de cada uma das células.

Application.ActiveSheet.Shapes.AddPicture Pict(i), False, True, Range(Celula).Left, Range(Celula).Top, Range(Celula).Width * 4, Range(Celula).Height * 11

Download da Planilha

Para o download da planilha de importação de imagens Excel com VBA basta preencher o formulário e fazer parte da nossa newsletter gratuita.

Download — baixe aqui: Importar imagens em planilha Excel automaticamente VBA

Preencha seus dados para receber o link de download no seu e-mail.

Abraço

Marcos Rieper

Curso Excel Completo – Do Básico ao VBA

Quer aprender Excel do Básico, passando pela Avançado e chegando no VBA? Clique na imagem abaixo:

Principais recursos

Confira o que este material oferece para você.

Organização por data e etapas
Classificação automática
Ranking e destaques
Fluxos e etapas automáticas
Dashboard com indicadores
Atualização automática por fórmulas

Perguntas frequentes

O material é realmente gratuito?

Sim. O acesso é gratuito e não exige cadastro.

Preciso ter o Excel instalado?

Recomendamos o Excel 2013 ou superior para todos os recursos.

Como faço para receber atualizações?

As atualizações são automáticas dentro da própria planilha.

Funciona no Excel do Mac?

Sim, funciona no Excel para Windows e para Mac.

Funciona no celular?

É possível visualizar no app do Excel; a edição completa é no computador.

Planilhas relacionadas

Planilha de Fluxo de Caixa

Planilha de Fluxo de Caixa

(1.327)

R$ 89,90

Controle de Estoque

Controle de Estoque

(962)

R$ 69,90

Planilha Financeira Empresarial

Planilha Financeira Empresarial

(1.254)

R$ 79,90

Dashboard Financeiro no Excel

Dashboard Financeiro no Excel

(689)

R$ 49,90

Continue lendo

Curso Excel Master — Básico ao Avançado, VBA, PowerPoint e mais

Receba conteúdos e novidades direto no seu e-mail

Dicas, tutoriais, planilhas gratuitas e muito mais.

Não enviamos spam. Cancele quando quiser.

Download imediato

Acesso na hora após a compra

Compra 100% segura

Seus dados protegidos com SSL

Acesso vitalício

Use para sempre, sem mensalidades

Suporte via WhatsApp

Atendimento rápido e humanizado