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

1 ответ1

2

Я совместил макрос VBA. Откройте редактор VBA с помощью клавиш ALT+F11 и вставьте приведенный ниже код в поле sheet1. Выполнить макрос с помощью 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .