Olá! Tentando balançar o painel com imagens significativas. Ou apenas tentando inserir uma imagem na célula do Excel VBA. Bem, você não pode inserir imagens em células do Excel, mas você pode redimensioná-las para caber nas células do Excel. Fazê-lo manualmente levará muito tempo e é irritante. Então qual é a solução? Você adivinhou certo, uma macro VBA. Vamos codificar agora.
Abaixo está o código vba do excel para inserir imagem de uma pasta em uma célula ou um determinado intervalo. Pressione Alt + F11, insira um módulo e copie este código.
Não se preocupe, eu expliquei abaixo para que você possa modificá-lo de acordo com suas necessidades.
Inserir imagem na célula do Excel com VBA em uma célula ou um determinado intervalo
Sub TestInsertPictureInRange () InsertPictureInRange "C: \ FolderName \ PictureFileName.gif", _Range ("B5: D10")
End Sub 'insere uma imagem e a redimensiona para caber no intervalo TargetCells Dim p como objeto, t como duplo, l como duplo, w como duplo, h como duplo If TypeName (ActiveSheet) "Worksheet" Then Exit Sub Se Dir (PictureFileName) = "" Então saia do Sub 'importar foto Defina p = ActiveSheet.Pictures.Insert (PictureFileName) 'determinar posições Com TargetCells t = .Top l = .Esquerda w = .Offset (0, .Columns.Count) .Left - .Left h = .Offset (.Rows.Count, 0) .Top - .Top Terminar com 'posicionar imagem Com p .Top = t .Esquerda = l .Width = w .Altura = h Terminar com Definir p = Nada End Sub |
Explicação:
Parte 1:
Sub TestInsertPictureInRange () InsertPictureInRange "C: \ FolderName \ PictureFileName.gif", _Range ("B5: D10")
End Sub |
A sub-rotina acima apenas chama nossa sub-rotina principal InsertPictureInRange que leva apenas dois argumentos. Primeiro o endereço do arquivo de imagem com seu nome e segundo Faixa onde deseja inserir a imagem no Excel.
Parte 2:
Sub InsertPictureInRange (PictureFileName As String, TargetCells As Range) 'insere uma imagem e a redimensiona para caber em TargetCells rangeDim p As Object, t As Double, l As Double, w As Double, h As Double
If TypeName (ActiveSheet) "Worksheet" Then Exit Sub Se Dir (PictureFileName) = "" Então saia do Sub 'importar foto Defina p = ActiveSheet.Pictures.Insert (PictureFileName) 'determinar posições Com TargetCells t = .Top l = .Esquerda w = .Offset (0, .Columns.Count) .Left - .Left h = .Offset (.Rows.Count, 0) .Top - .Top Terminar com 'posicionar imagem Com p .Top = t .Esquerda = l .Width = w .Altura = h Terminar com Definir p = Nada End Sub |
Esta é a sub-rotina principal que insere e redimensiona a imagem para caber no intervalo fornecido. Vamos investigar.
Dim p como objeto, t como duplo, l como duplo, w como duplo, h como duplo
Esta linha é apenas uma declaração de variável de que precisaremos. Nota p Como a variável do objeto. Esta variável conterá nossa imagem.
If TypeName (ActiveSheet) "Worksheet" Then Exit Sub
Ele verifica se a Activesheet é uma planilha ou não. Caso contrário, ele sairá do código imediatamente e nada acontecerá.
Se Dir (PictureFileName) = "" Então saia do Sub
Verifique se você forneceu um endereço para a imagem para inserir uma foto na célula do Excel. Se você não o tiver fornecido, ele será encerrado imediatamente e nada acontecerá.
Defina p = ActiveSheet.Pictures.Insert (PictureFileName)
Agora, esta é a linha mais importante. Nesta linha, estamos usando a função Insert do Activesheet. Pictures objeto e colocá-lo no objeto p que declaramos anteriormente. Agora, usando p, podemos ajustar facilmente a largura e o comprimento da imagem.
Com TargetCells t = .Top l = .Left w = .Offset (0, .Columns.Count) .Left - .Left h = .Offset (.Rows.Count, 0) .Top - .Top End With
Este segmento obtém apenas Comprimento, Largura, Superior e Esquerda do intervalo fornecido.
Com p .Top = t .Left = l .Width = w Height = h End With
Esta parte ajusta a imagem para um determinado intervalo. E está feito. Por último, nós o libertamos definindo-o como nada.
Definir p = Nada
Esta linha libera memória.
Este código funcionará no Excel 2016, Excel 2013, Excel 2010 e Excel 2007.
Aqui eu queria inserir a imagem no intervalo A1: C10. Para fazer isso, modifiquei meu código abaixo
Sub TestInsertPictureInRange () InsertPictureInRange "C: \ Users \ Manish Singh \ Downloads \ biker.jpg", _Faixa("A1: C10")
End Sub |
E é isso que eu tenho. Exatamente o que eu queria.
Então sim. Use este código para inserir uma imagem na célula ou intervalo do Excel. Brinque com o código. Tente inserir formatos diferentes, faixas estranhas e veja o que acontece. Se você tiver alguma dúvida ou estiver enfrentando algum desafio, use a seção de comentários abaixo para me perguntar.
⇬ Fazer download do arquivo
Artigos populares:
50 atalhos do Excel para aumentar sua produtividade
Como usar a função PROCV no Excel
Como usar a função CONT.SE no Excel
Como usar a função SUMIF no Excel