Страницы: 1
RSS
Вставка картинки (16х16, 32х32) в примечание, растягивается изображение
 
Приветствую!!!
Господа, подскажите кто в курсе.
Нужно сделать Файл вида: рисунок иконки, ссылка на иконку.
Варианта 2:
1) сохранять на диск и вставлять в примечания.
Вроде все хорошо, но когда я вставляю через Другие способы заливки, я получаю размытое изображение.
Ексель растягивает картинку в 16х16 и 32х32 до такого вида.

2) вставлять прямо в ячейку.
Но картинок будет примерно 38000 на лист, можно конечно разбивать листы, но что-то мне не очень хочется так делать.
Склоняюсь к 1-му варианту.
Но не знаю или можно вставлять в примечание прямо через ссылку на файл + убрать растягивание, нужен параметр автоподгонки изображения.
Сохранять пропорции рисунка - не помогает.
Желателен vba пример.
Иконки в png, если это имеет значение, хотя могут быть и др форматы.
Заранее благодарю.
Изменено: Антон - 23.12.2013 18:51:04
 
По видимому проблема в разрешении рисунка, уж больно оно маленькое.
 
что-то я сразу не узрел, видимо просто рамку надо сжать до нужных размеров, но почему на срабатывает автоподгон. Видимо не там где-то смотрю галочку.
 
Цитата
картинок будет примерно 38000 на лист
Следующая тема будет о: "файл тормозит, весит жутко много, глючит, вылетает с ошибкой" и т.д.
Изменено: KuklP - 23.12.2013 19:41:19
Я сам - дурнее всякого примера! ...
 
:D , ну ведь спрашиваю, как лучше
 
Лучше не делать этого в Эксе. В Аксесс лучше. Он для этого больше приспособлен.
Я сам - дурнее всякого примера! ...
 
Можно вот так, если я правильно понимаю, что требуется в примечании показывать только саму картинку, и если есть библиотека 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 для ваших картинок известно и одно и тоже, тогда информацию о размере рисунка в пикселах можно взять, воспользовавшись таким кодом.. Успехов.
 
Нашел в примерах http://www.planetaexcel.ru/techniques/9/128/ Картинка в примечании к ячейке
Заменим в макросе заливку текстурой
Код
.Fill.UserTextured FileName 
на заливку картинкой
Код
.Fill.UserPicture FileName 

anvg спасибо, за библиотечку  
 
Странно, что не получилось с текстурой, впрочем UserPicture правильнее, что-то я перемудрил с UserTextured - недавно делал заливку текстурой, вот на автомате и написал это :D . Рад, что у вас всё получилось, успехов!
Страницы: 1
Читают тему
Наверх