Definieren Sie die Abmessungen des Kommentarfelds automatisch neu, damit sie mit dem Hintergrundbild in Excel übereinstimmen

Definieren Sie die Abmessungen des Kommentarfelds automatisch neu, damit sie mit dem Hintergrundbild in Excel übereinstimmen

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

  1. Fragen Sie den Benutzer nach dem Pfad zu einem Bild, das er einfügen möchte (kann JPG, BMP oder PNG sein).

  2. Laden Sie das Bild alsWIA.imageFile. Später verwenden wir objImage.Heightund objImage.Widthum 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)

  3. Fügt einen leeren Kommentar in die aktuell ausgewählte Zelle ein, wenn dort noch kein alter Kommentar vorhanden ist

  4. Legen Sie das ausgewählte Bild als Hintergrundbild für die Kommentarform fest

  5. 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

verwandte Informationen