
Angenommen, ich wähle in Excel ein Bild, beispielsweise test.jpeg, als Hintergrund für einen Kommentar aus. Ich möchte, dass das Kommentarfeld die Abmessungen von test.jpeg hat. Da ich Hunderte solcher Kommentare haben möchte, lautet meine Frage: Gibt es eine Möglichkeit, dies zu automatisieren?
Antwort1
Ich habe ein VBA-Makro zusammengebastelt. Öffnen Sie Ihren VBA-Editor mit ALT+ F11und fügen Sie den folgenden Code unterBlatt1. Führen Sie das Makro mit ALT+ aus.F8
Was das Makro macht
Fragen Sie den Benutzer nach dem Pfad zu einem Bild, das er einfügen möchte (kann JPG, BMP oder PNG sein).
Laden Sie das Bild als
WIA.imageFile
. Später verwenden wirobjImage.Height
undobjImage.Width
um die tatsächlichen Bildabmessungen zu erhalten.Diese Methode war die kürzeste, die ich gefunden habe, um Abmessungen in Pixeln zu erhalten (andere VBA-Methoden geben Ihnen möglicherweisetwips. Sie sind eine schreckliche Erfindung)
Fügt einen leeren Kommentar in die aktuell ausgewählte Zelle ein, wenn dort noch kein alter Kommentar vorhanden ist
Legen Sie das ausgewählte Bild als Hintergrundbild für die Kommentarform fest
Passen Sie die Abmessungen der Kommentarform an, damit das Bild perfekt hineinpasst
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