Приветствую!!! Господа, подскажите кто в курсе. Нужно сделать Файл вида: рисунок иконки, ссылка на иконку. Варианта 2: 1) сохранять на диск и вставлять в примечания. Вроде все хорошо, но когда я вставляю через Другие способы заливки, я получаю размытое изображение. Ексель растягивает картинку в 16х16 и 32х32 до такого вида. 2) вставлять прямо в ячейку. Но картинок будет примерно 38000 на лист, можно конечно разбивать листы, но что-то мне не очень хочется так делать. Склоняюсь к 1-му варианту. Но не знаю или можно вставлять в примечание прямо через ссылку на файл + убрать растягивание, нужен параметр автоподгонки изображения. Сохранять пропорции рисунка - не помогает. Желателен vba пример. Иконки в png, если это имеет значение, хотя могут быть и др форматы. Заранее благодарю.
Можно вот так, если я правильно понимаю, что требуется в примечании показывать только саму картинку, и если есть библиотека Microsoft Image Acquisition Library (нужна для определения размеров)
Код
Public Sub AddCommentImage(ByVal intoCell As Range, ByVal FileName As String)
Dim pWIA As New WIA.ImageFile
Dim vWidth As Single, vHeight As Single
pWIA.LoadFile FileName
vWidth = Application.InchesToPoints(pWIA.Width / pWIA.HorizontalResolution)
vHeight = Application.InchesToPoints(pWIA.Height / pWIA.VerticalResolution)
Set pWIA = Nothing
If intoCell.Comment Is Nothing Then intoCell.AddComment
With intoCell.Comment.Shape
.TextFrame.Characters.Text = ""
.Height = vHeight: .Width = vWidth
.Fill.UserTextured FileName
.Fill.ForeColor.RGB = 16777215
End With
End Sub
Если этой библиотеки нет, то сложнее. Допустим разрешение Resolution для ваших картинок известно и одно и тоже, тогда информацию о размере рисунка в пикселах можно взять, воспользовавшись таким кодом.. Успехов.
Странно, что не получилось с текстурой, впрочем UserPicture правильнее, что-то я перемудрил с UserTextured - недавно делал заливку текстурой, вот на автомате и написал это . Рад, что у вас всё получилось, успехов!