Автоматически переопределять размеры поля комментариев в соответствии с фоновым изображением в Excel

Автоматически переопределять размеры поля комментариев в соответствии с фоновым изображением в Excel

В Excel, скажем, я выбираю изображение, например test.jpeg, в качестве фона комментария. Я хочу, чтобы поле комментария имело размеры test.jpeg. Поскольку я планирую иметь сотни таких комментариев, у меня вопрос: есть ли способ автоматизировать это?

решение1

Я повозился с макросом VBA. Откройте редактор VBA с помощью ALT+ F11и вставьте следующий код подлист1. Выполнить макрос с помощью ALT+F8

Что делает макрос

  1. Запросить у пользователя путь к изображению, которое он хочет вставить (может быть jpg, bmp или png)

  2. Загрузите эту картинку какWIA.imageFile. Позже мы используем objImage.Heightи objImage.Widthдля получения реальных размеров изображения.

    Этот метод оказался самым коротким из найденных мной для получения размеров в пикселях (другие методы VBA могут дать вамтвипсы. Это ужасное изобретение)

  3. Вставьте пустой комментарий в выбранную ячейку, если там еще нет старого комментария.

  4. Установить выбранную картинку в качестве фонового изображения для формы комментария

  5. Измените размеры формы комментария так, чтобы изображение идеально вписалось

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

Связанный контент