Visual Basic for Application, abreviado como VBA, é uma forma de Visual Basic 6 integrada aos programas do Microsoft Office. Por meio da codificação, o VBA permite automatizar tarefas em programas do Office, incluindo o Excel. Em alguns casos, você pode até adicionar novos recursos ao Excel usando o VBA.

Embora você precise trabalhar com código para usar o VBA, isso não significa que o VBA seja só letras e números. Com o VBA no Excel, você pode criar uma macro que permite inserir imagens em uma célula ou em um intervalo de células. Continue lendo para descobrir tudo sobre isso!

Como inserir uma imagem em uma célula usando VBA no Excel

Para criar uma macro para inserir imagens em células do Excel usando VBA, você realmente não precisa de nenhum conhecimento avançado de Visual Basic. Tudo o que você precisa fazer é habilitar as ferramentas do desenvolvedor, criar a macro e colar o código correto.

No entanto, se você estiver interessado em aprender VBA e escrever seu próprio código algum dia, detalhamos o código VBA na terceira seção. Claro, você também pode

inserir imagens no Excel sem usar VBA. Mas este artigo é sobre como fazê-lo através do VBA. Vamos ao que interessa!

Para usar o VBA no Excel, você precisa habilitar as ferramentas de desenvolvedor no Excel. Isso ativará a guia Desenvolvedor na faixa de opções, que está desativada por padrão.

  1. Abra o Excel.
  2. Vou ao Arquivo cardápio.
  3. Clique em Opções na parte inferior da tela. Isso abrirá a janela Opções do Excel.
  4. Em Opções do Excel, vá para o Personalizar fita aba.
  5. Sob Guias principais, verificar Desenvolvedor.

Agora as ferramentas do desenvolvedor, incluindo acesso ao VBA, estão habilitadas para você. Você não precisa fazer isso toda vez que quiser usar o VBA no Excel. As ferramentas do desenvolvedor permanecerão habilitadas até que você as desabilite.

2. Criando a Macro e Inserindo o Código

Agora é hora de começar a criar a macro. Alternativamente, você também pode criar um botão usando VBA para esta tarefa, mas vamos nos ater às macros.

  1. No Excel, vá para o Desenvolvedor aba.
  2. No Código seção, selecione Macros.
  3. Na nova janela, insira um nome para sua macro em Nome da macro. nós vamos usar inserirFotoMacro.
  4. Clique Criar.

Depois de clicar em Criar, a janela do VBA será aberta e exibirá o código da sua macro. Neste momento, o código consistirá em duas linhas: A Sub para iniciar a macro, e um End Sub para acabar com isso.

Vamos adicionar algum código a esta macro. Adicione o seguinte código entre as duas linhas:

Dim photoNameAndPath Como Variante
foto fraca Como Foto
photoNameAndPath = Aplicativo. GetOpenFilename (Título:="Selecione foto paraInserir")
Se photoNameAndPath = Falso Então Saída Sub
Definir foto = ActiveSheet. Fotos. Inserir (fotoNomeAndPath)
Com foto
.Esquerda = ActiveSheet. Faixa("A1").Esquerda
.Top = ActiveSheet. Faixa("A1").Principal
.Width = ActiveSheet. Faixa("A1").Largura
.Altura = ActiveSheet. Faixa("A1").Altura
.Posicionamento = 1
FimCom

Seu código final deve ser algo como o abaixo:

Você não precisa se preocupar em salvar seu progresso. Cada mudança que você faz no VBA é salva instantaneamente.

Agora é hora de ver o código funcionando.

  1. Feche a janela do VBA.
  2. Vou ao Desenvolvedor guia no Excel.
  3. Selecione Macros de Código seção.
  4. Destaque a macro que você acabou de criar.
  5. Clique Correr.

Agora, um prompt será aberto solicitando que você localize o arquivo de imagem que deseja inserir. Selecione sua imagem e clique em Abrir. Agora você deve ver sua foto na célula A1!

Observe que a imagem inserida é reduzida para caber na célula A1. Você pode alterar isso e também alterar o código para inserir a imagem em outras células ou até mesmo em um intervalo de células. Na próxima seção, vamos detalhar o código e explicar os parâmetros em funcionamento.

3. Decifrando o Código

Para fazer este código VBA funcionar para você da maneira que você deseja, você precisa entendê-lo. Depois de fazer isso, você pode alterar o código para inserir fotos em qualquer célula e em qualquer tamanho. Vamos percorrer o código pouco a pouco para facilitar a compreensão.

Sub inserirFotoMacro()
Dim photoNameAndPath Como Variante
foto fraca Como Foto
photoNameAndPath = Aplicativo. GetOpenFilename (Título:="Selecione foto paraInserir")
Se photoNameAndPath = Falso Então Saída Sub
Definir foto = ActiveSheet. Fotos. Inserir (fotoNomeAndPath)
Com foto
.Esquerda = ActiveSheet. Faixa("A1").Esquerda
.Top = ActiveSheet. Faixa("A1").Principal
.Width = ActiveSheet. Faixa("A1").Largura
.Altura = ActiveSheet. Faixa("A1").Altura
.Posicionamento = 1
FimCom
Fim Sub

Uma vez que o código é iniciado, usamos o Dim para determinar o tipo da variável. Temos duas variáveis ​​aqui: photoNameAndPath e foto em si. Nós determinamos o primeiro como um Variante e o último como um foto.

A partir daí, a variável photoNameAndPath é executada e abre um aplicativo para obter o paradeiro do arquivo de imagem. Isso é feito através Aplicativo. GetOpenFileName. O Título O parâmetro é opcional e o conteúdo nele é exibido como o nome da janela.

Usando Se photoNameAndPath = False, então saia do sub, especificamos que, se for fornecido um endereço inválido ou em branco, o processo deve ser finalizado. No entanto, se um arquivo adequado for alimentado, então Definir foto = ActiveSheet. Fotos. Inserir (fotoNomeAndPath) indica que a imagem deve ser definida como a variável foto que definimos anteriormente e deve ser inserida na planilha ativa.

Finalmente usando Com foto e nas cinco linhas seguintes, elaboramos o posicionamento da imagem. .Esquerda e .Principal indicar os locais de início, enquanto .Largura e .Altura indicar os locais finais. Se você deseja inserir a imagem em outras células ou em um intervalo, essas são as linhas que você deve alterar.

.Colocação indica se a imagem deve ser dimensionada com as células ou inserida de forma livre. Configurando para 1 irá dimensioná-lo com as células.

Em última análise, usamos Terminar com e então End Sub para fechar a macro. Observe que você pode alterar o photoNameAndPath e foto variáveis ​​para qualquer outro nome que você quiser. Apenas lembre-se de manter os nomes consistentes em todo o código.

Faça mais no Excel com VBA

O Excel é de fato uma ferramenta maravilhosa para organizar e analisar dados, mas isso não significa que o Excel seja inepto quando se trata de gráficos. Embora fotos e bitmaps não sejam o ponto forte do Excel, o Excel ainda é perfeitamente capaz de lidar com eles.

Embora você possa inserir imagens no Excel usando a interface como faria em outros aplicativos do Office, também pode fazê-lo usando o VBA. Com o VBA, você pode automatizar essa tarefa e até acoplá-la a outras tarefas para serem executadas simultaneamente. As possibilidades com VBA no Excel são infinitas.