
En Excel, digamos que elijo una imagen, test.jpeg por ejemplo, como fondo de un comentario. Quiero que el cuadro de comentarios tome las dimensiones de test.jpeg. Como planeo tener cientos de comentarios de este tipo, mi pregunta es: ¿hay alguna manera de automatizar esto?
Respuesta1
Jugué con una macro de VBA. Abra su editor VBA con ALT+ F11y pegue el siguiente código enhoja1. Ejecute la macro con ALT+F8
Que hace la macro
Solicite al usuario una ruta a la imagen que desea insertar (puede ser jpg, bmp o png)
Cargue esa imagen como
WIA.imageFile
. Posteriormente usamosobjImage.Height
yobjImage.Width
para obtener las dimensiones reales de la imagen.Este método fue el más corto que encontré para obtener dimensiones en píxeles (otros métodos de VBA pueden brindarlepuntas. Son un invento horrible)
Inserte un comentario en blanco en la celda actualmente seleccionada si ya no existe ningún comentario antiguo allí
Establece la imagen elegida como imagen de fondo para la forma del comentario.
Cambie el tamaño de las dimensiones de la forma del comentario para que la imagen encaje perfectamente
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