![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 20.07.2012
Сообщений: 17
|
![]()
С другой программы через скрипт внедряю в вновь создаваемую книгу Еxcel 2007 рисунок типа WMF или JPEG. Затем исходный рисунок удаляется с компьютера. В Еxcel 2007 всё внедрённое сохраняется.
Почему то же самое невозможно сделать для Excel 2010 и 2013, то есть остается связь с источником рисунка. После удаления исходного рисунка с компьютера, теряется и внедрённый рисунок в Excel 2010 и 2013. Последний раз редактировалось bel62; 29.01.2014 в 23:11. |
![]() |
![]() |
![]() |
#2 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]()
а посмотрите в свойства рисунка, возможно внедряется не сам рисунок а ссылка на него, и возможно этим можно управлять.
это мысли вслух. я остановился на 2007, следующих офисов не видел.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 20.07.2012
Сообщений: 17
|
![]()
Так и есть. В 2010 и 2013 внедряется не сам рисунок а ссылка на него, а в 2007 внедряется сам рисунок. Думаю что-то в установочных файлах Excel надо менять. Но в каких?
|
![]() |
![]() |
![]() |
#4 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
Так устроены новые версии Excel
Просто макрос надо немного другой: http://excelvba.ru/code/PastePictures#comment-3126 Цитата:
http://excelvba.ru/programmes/PastePictures |
|
![]() |
![]() |
![]() |
#5 | |
Пользователь
Регистрация: 20.07.2012
Сообщений: 17
|
![]() Цитата:
Вот у меня скрипт для 2007. Как будет он выглядеть для 2010 (с помощью Shapes.AddPicture)? Function InsertJPEGPicture(szJPEGPath, WScale) Dim lWscale Dim Aspect Dim Shift lWscale = Eval(WScale)*1.0 ' Привяжемся к верхнему левому углу rr="A2" ObjExc.ActiveSheet.PageSetup.Orient ation = 2 objExc.ActiveSheet.Range(rr).Select Set r1 = objExc.Range("A2:O33") Set a = ObjExc.ActiveSheet.Pictures.Insert( szJPEGPath) a.ShapeRange.LockAspectRatio = 0'WScale a.ShapeRange.Height = r1.Height a.ShapeRange.Width = r1.Width Aspect = r1.Height / r1.Width If lWscale < Aspect Then a.ShapeRange.ScaleHeight (lWscale/Aspect), msoFalse, msoScaleFromTopLeft a.ShapeRange.ScaleHeight (1.1), msoFalse, msoScaleFromTopLeft a.ShapeRange.ScaleWidth (0.9), msoFalse, msoScaleFromTopLeft a.ShapeRange.IncrementLeft (r1.Width*(0.1)/2) Else Shift = (r1.Width-r1.Width*(Aspect/lWscale))/2 a.ShapeRange.ScaleWidth (Aspect/lWscale), msoFalse, msoScaleFromTopLeft a.ShapeRange.IncrementLeft Shift End If End Function |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Microsoft Spy++ 2010-2013 | beegl | Софт | 4 | 19.10.2018 13:45 |
Помогите исправить ошибку с Excel 2013 | Alexandr17 | Microsoft Office Excel | 4 | 28.12.2013 20:33 |
Проблема с открытием другой книги с помощью макроса в excel 2013 | roborrr | Microsoft Office Excel | 11 | 18.10.2013 10:41 |
Не вставить рисунок в Word 2007-2010 | Tongo | Microsoft Office Word | 0 | 05.01.2010 20:24 |