|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
21.03.2016, 07:50 | #1 |
Пользователь
Регистрация: 26.12.2008
Сообщений: 73
|
Добавление изображения в примечание ячейки из буфера обмена
Помогите доработать макрос. Он должен добавить в меню ячейки пункт - "Вставить изображение", которое добавляет примечание к ячейке и делает фоном примечания картинку из буфера.
Нашел наработки по данный теме, но, как я уже написал выше, нужно чтобы картинка вставлялась из буфера обмена автоматически, а автор предлагает выбрать картинку из сохраненных в компьютере. Что имеем (http://excelvba.ru/code/PictureInCellComment): В модуль "ЭтаКнига" вставляем: Код:
Код:
Собственно загвоздка у меня в том, что не могу найти функцию работы с буфером обмена, когда в нем не текст, а изображение, т.е. хочется в итоге иметь решение типа такого: Код:
Screenshot_3.png Нужна замена этой функции для VBA, чтоб получился такой код: Код:
Четко сформулированная задача - половина решения!
<= Спасибо оставляем в отзывах |
21.03.2016, 18:12 | #2 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
вместо «My.Computer.Clipboard.GetImage» в VBA придется написать много строк кода
Нужный код можно найти здесь: http://programmersforum.ru/showthread.php?t=54492 Там есть макрос SaveClipboardToBMP - создаст файл формата BMP из буфера обмена а как из файла в примечание вставить - вы уже знаете PS: чтобы сохранить файл в формате JPG - кода будет намного больше (где-то тут на форуме тоже выкладывал) |
22.03.2016, 00:30 | #3 | |
Пользователь
Регистрация: 26.12.2008
Сообщений: 73
|
Цитата:
Одно не пойму, как там реализован процесс проверки содержимого буфера? Просто по наличию итогового файла? Если есть, значит в буфере была картинка? З.Ы. Вдогонку... как узнать размер картинки в буфере (ширина/высота), чтоб подобрать для него размер примечания?
Четко сформулированная задача - половина решения!
<= Спасибо оставляем в отзывах |
|
22.03.2016, 03:24 | #4 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
размеры BMP-файла так
Код:
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
Последний раз редактировалось IgorGO; 22.03.2016 в 03:28. |
22.03.2016, 16:47 | #5 |
Пользователь
Регистрация: 26.12.2008
Сообщений: 73
|
Решено!
EducatedFool, IgorGO, спасибо огромное за пинки в нужном направлении!
Цель достигнута, результат отвечает поставленной задаче. Итак, В модуль "ЭтаКнига" вставляем: Код:
Код:
Четко сформулированная задача - половина решения!
<= Спасибо оставляем в отзывах |
07.04.2017, 11:38 | #6 |
Новичок
Джуниор
Регистрация: 05.07.2009
Сообщений: 2
|
Возможна ли адаптация для Win 64?
Скачал пример, при попытке нажать "Вставить изображение", выводит ошибку на строки Код:
Попробовал, ошибка не выдается, но при клике "Вставить изображение" выводит, что в буфере нет изображения. Может кто-то помочь? |
07.04.2017, 13:48 | #7 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
Ральф Сэт, там очень много надо в коде менять
в том числе определения переменных внутри функций Т.е. менять вот такие строки: Код:
Код:
и еще надо обходить один глюк 64-битных систем Зачем вам вообще через буфер обмена картинку гонять? Почему напрямую из файла не вставить? |
08.04.2017, 18:07 | #8 |
Новичок
Джуниор
Регистрация: 05.07.2009
Сообщений: 2
|
EducatedFool, на самом деле уже пробовал просто через crtl-H заменить все Long на LongPtr, не помогло, та же ошибка про отсутствие картинки в буфере.
Если я правильно понимаю, конкретно мне, не нужны проверки #If Win64 Then и If VBA7 Then ? Если я не планирую использовать 32 битную Office. На основе этого кода хотел попробовать сделать макрос, при выполнении которого выделенная область копируется в буфер картинкой и в соседнюю ячейку вставляется примечание с этим же скриншотом. Очень удобно, имхо, когда надо следить за изменением значений в таблице, плюс если прятать скриншот в примечание, он не будет так мешать. |
01.08.2019, 18:23 | #9 |
Пользователь
Регистрация: 30.05.2019
Сообщений: 36
|
@EducatedFool или ещё кто нибудь!
У меня есть вот этот макрос: Код:
Помогите допилить сюда открытие диалогового окна с выбором файла (то есть картинки): Код:
|
03.08.2019, 20:11 | #10 |
Пользователь
Регистрация: 30.05.2019
Сообщений: 36
|
Кароче вот рабочий вариант:
Код:
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
очистка буфера обмена | beegl | Общие вопросы Delphi | 21 | 04.01.2017 11:01 |
Как вставить данные из буфера обмена в ячейки Excel без форматирования данных? | protected_by | Microsoft Office Excel | 2 | 16.12.2013 19:38 |
Hook буфера обмена | rust-02 | Общие вопросы Delphi | 0 | 20.09.2010 19:21 |
Вставка из буфера обмена | volonc | Microsoft Office Excel | 12 | 17.07.2010 19:04 |
Копирование изображения из буфера обмена. | yuran666666 | Win Api | 2 | 24.02.2010 13:39 |