
No Excel, digamos que eu escolha uma imagem, test.jpeg por exemplo, como plano de fundo de um comentário. Quero que a caixa de comentários tenha as dimensões de test.jpeg. Como pretendo receber centenas desses comentários, minha pergunta é: existe uma maneira de automatizar isso?
Responder1
Eu criei uma macro VBA. Abra seu editor VBA com ALT+ F11e cole o código abaixo emfolha1. Execute a macro com ALT+F8
O que a macro faz
Peça ao usuário o caminho para a imagem que deseja inserir (pode ser jpg, bmp ou png)
Carregue essa imagem como um
WIA.imageFile
. Mais tarde usamosobjImage.Height
eobjImage.Width
para obter as dimensões reais da imagem.Este método foi o mais curto que encontrei para obter dimensões em pixels (outros métodos VBA podem forneceridiotas. Eles são uma invenção horrível)
Insere um comentário em branco na célula atualmente selecionada se nenhum comentário antigo já existir lá
Defina a imagem escolhida como imagem de fundo para o formato do comentário
Redimensione as dimensões da forma do comentário para que a imagem se encaixe perfeitamente
Sub InsertComment()
Dim strImagePath As Variant
Dim objImage As Object
strImagePath = Application.GetOpenFilename("Picture, *.jpg; *.png; *.bmp")
If strImagePath = False Then Exit Sub
Set objImage = CreateObject("WIA.ImageFile")
objImage.LoadFile strImagePath
With ActiveCell
If .Comment Is Nothing Then .AddComment ("")
.Comment.Shape.Fill.UserPicture strImagePath
.Comment.Shape.Height = objImage.Height * 0.75
.Comment.Shape.Width = objImage.Width * 0.75
End With
End Sub