В Excel, скажем, я выбираю изображение, например test.jpeg, в качестве фона комментария. Я хочу, чтобы поле для комментариев принимало размеры test.jpeg. Поскольку я планирую получить сотни таких комментариев, мой вопрос: есть ли способ автоматизировать это?
1 ответ
2
Я совместил макрос VBA. Откройте редактор VBA с помощью клавиш ALT+F11 и вставьте приведенный ниже код в поле sheet1. Выполнить макрос с помощью ALT+F8
Что делает макрос
- Попросите пользователя указать путь к картинке, которую он хочет вставить (может быть jpg, bmp или png)
Загрузите эту картинку как
WIA.imageFile
. Позже мы используемobjImage.Height
иobjImage.Width
чтобы получить реальные размеры изображения.Этот метод был самым коротким, который я нашел, чтобы получить размеры в пикселях (другие методы VBA могут дать вам советы. Это ужасное изобретение)
- Вставьте пустой комментарий в текущую выбранную ячейку, если там еще нет старого комментария
- Установить выбранное изображение в качестве фонового изображения для формы комментария
- Измените размеры формы комментария, чтобы картинка идеально подходила
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