Страницы: 1
RSS
Увеличение картинки и видео
 
Добрый день!  
 
Есть файл с кучей картинок. Как сделать так, чтобы при наведении мыши на картинку (без разницы какую) она бы увеличилавалась в 3 раза (исходный размер Application.Selection.Top, 106, 99) и менялся бы ее порядок расположения на передний план. И, соответственно, при переводе мыши с картинки все возвращалось обратно.  
 
В том же файле есть куча встренных проигрывателей (windows media player). На каждый из них прикручены кнопки запускающие и останавливающие просмотр видео. Как сделать, чтобы при нажатии на play проигрыватель увеличивался в три раза, а нажимая на стоп уменьшался  
 
Вот коды кнопок play и stop  
 
Sub PlayURL()  
 On Error Resume Next  
 WindowsMediaPlayer1.URL = Range("h57")  
End Sub  
 
Sub ClearURL()  
 On Error Resume Next  
 WindowsMediaPlayer1.URL = ""  
End Sub  
 
 
Заранее огромное спасибо!!!
 
Если невозможно увеличить картинку при наведении мыши, то можно ли сделать то же самое при нажатии на картинку левой клавиши мыши?
 
http://www.planetaexcel.ru/tip.php?aid=40  
http://www.planetaexcel.ru/tip.php?aid=57  
Дмитрий, в "Приемах" есть нечто похожее. Первая ссылка касается примечаний к ячейке - сможете сделать любой размер. Вторая - фото к выпадающему списку. Может подойдёт для Ваших нужд?
 
Юрий,спасибо за ссылки! Они мне знакомы, но я не совсем понимаю как они могут мне помочь.  
 
Еще раз опишу проблему с картинками.  
 
На лист автоматически подгружается несколько десятков картинок. Чтобы они компактно разместились размер картинок не велик. Это я умею. А вот дальше уже не умею :)  
Если пользователь пожелает более подробно рассмотреть картинку (увеличить ее) должно быть достаточно навести на нее курсор мыши или один раз нажать левую клавишу мыши на картинке (соответственно, повторное нажатие должно возвращать размер картинки к исходному размеру)
 
Дмитрий, я не совсем себе представляю как у Вас на листе подгружаются картинки. Приложите файл с парой картинок, которые "подгружаются" - посмотрим.
 
вот файлик
 
Sub Макрос1()  
   ActiveSheet.Shapes("Picture 1").Select  
   Selection.ShapeRange.ScaleWidth 2.49, msoFalse, msoScaleFromTopLeft  
   Selection.ShapeRange.ScaleHeight 2.1, msoFalse, msoScaleFromTopLeft  
   Range("J16").Select  
End Sub  
Вставьте макрос в стандартный модуль. Размер точно в 3 раза больше не выставлял - можно указывать любой. Для левой верхней картинки. Продолжение темы: для возврата к прежнему размеру следует создать счетчик кликов (со сбросом) и если значение = 2, то выполнять второй макрос, в котором указать прежний размер картинки. С проигрывателем, вероятно, та же история. Скорее всего найдутся и другие варианты.
 
Примерно вот так.
 
{quote}{login=Дмитрий Д}{date=11.09.2008 09:59}{thema=}{post}Если невозможно увеличить картинку при наведении мыши, то можно ли сделать то же самое при нажатии на картинку левой клавиши мыши?{/post}{/quote}  
 
=========================  
Я тоже тогда свои пять копеек вставлю)) Вот таким примитивным способом можно))). Тока надо каждой картинке свой саб приписать… Номер картинки видно, если её выделить (над ячейкой А1). Потом выделенной картинке назначить соответствующий саб.    
============  
Dim i As Integer, b As Single  
Sub Рисунок5_Щелкнуть()  
i = 3  
b = 0.1  
   With ActiveSheet.Shapes("Picture 5")  
       .ScaleWidth i, msoScaleFromTopLeft  
       .ScaleHeight i, msoScaleFromTopLeft  
   End With  
   With ActiveSheet  
       .Shapes("Picture 1").ScaleWidth i * b, msoScaleFromTopLeft  
       .Shapes("Picture 1").ScaleHeight i * b, msoScaleFromTopLeft  
       .Shapes("Picture 3").ScaleWidth i * b, msoScaleFromTopLeft  
        .Shapes("Picture 3").ScaleHeight i * b, msoScaleFromTopLeft  
       .Shapes("Picture 4").ScaleWidth i * b, msoScaleFromTopLeft  
       .Shapes("Picture 4").ScaleHeight i * b, msoScaleFromTopLeft  
   End With  
End Sub  
Sub Рисунок4_Щелкнуть()  
i = 3  
b = 0.1  
   With ActiveSheet.Shapes("Picture 4")  
       .ScaleWidth i, msoScaleFromTopLeft  
       .ScaleHeight i, msoScaleFromTopLeft  
   End With  
   With ActiveSheet  
       .Shapes("Picture 1").ScaleWidth i * b, msoScaleFromTopLeft  
       .Shapes("Picture 1").ScaleHeight i * b, msoScaleFromTopLeft  
           .Shapes("Picture 3").ScaleWidth i * b, msoScaleFromTopLeft  
        .Shapes("Picture 3").ScaleHeight i * b, msoScaleFromTopLeft  
       .Shapes("Picture 5").ScaleWidth i * b, msoScaleFromTopLeft  
       .Shapes("Picture 5").ScaleHeight i * b, msoScaleFromTopLeft  
   End With  
End Sub  
Sub Рисунок3_Щелкнуть()  
i = 3  
b = 0.1  
   With ActiveSheet.Shapes("Picture 3")  
       .ScaleWidth i, msoScaleFromTopLeft  
       .ScaleHeight i, msoScaleFromTopLeft  
   End With  
   With ActiveSheet  
       .Shapes("Picture 1").ScaleWidth i * b, msoScaleFromTopLeft  
       .Shapes("Picture 1").ScaleHeight i * b, msoScaleFromTopLeft  
.Shapes("Picture 4").ScaleWidth i * b, msoScaleFromTopLeft  
        .Shapes("Picture 4").ScaleHeight i * b, msoScaleFromTopLeft  
       .Shapes("Picture 5").ScaleWidth i * b, msoScaleFromTopLeft  
       .Shapes("Picture 5").ScaleHeight i * b, msoScaleFromTopLeft  
   End With  
End Sub  
Sub Рисунок1_Щелкнуть()  
i = 3  
b = 0.1  
   With ActiveSheet.Shapes("Picture 1")  
       .ScaleWidth i, msoScaleFromTopLeft  
       .ScaleHeight i, msoScaleFromTopLeft  
   End With  
   With ActiveSheet  
       .Shapes("Picture 4").ScaleWidth i * b, msoScaleFromTopLeft  
       .Shapes("Picture 4").ScaleHeight i * b, msoScaleFromTopLeft  
           .Shapes("Picture 3").ScaleWidth i * b, msoScaleFromTopLeft  
        .Shapes("Picture 3").ScaleHeight i * b, msoScaleFromTopLeft  
       .Shapes("Picture 5").ScaleWidth i * b, msoScaleFromTopLeft  
       .Shapes("Picture 5").ScaleHeight i * b, msoScaleFromTopLeft  
   End With  
End Sub  
 
P.S. Я для приведенного примера набирал код. Его можно, даже нужно сделать более универсальным. Я думаю, вначале нужно переименовать все существующие на листе картинке кодом, тогда и сам код будет намного меньше и проще… )))
 
---  
См. пример в приложении  
---  
ZVI
 
{quote}{login=ZVI}{date=12.09.2008 09:58}{thema=Re:}{post}---  
См. пример в приложении  
---  
ZVI{/post}{/quote}  
 
почему то не увеличивает, а при закрыти файла эксель предлагает отчет отправить...(2007 офис)
 
Юрий и Новичек спасибо за примеры!  
 
Насколько я понимаю, в них обязательно, чтобы картинки всегда имели одно и то же имя. Но при смене года у меня макрос автоматом удаляет все картинки и подгружает новые, у которых другие имена.  
 
ZVI - это мега круто!!! Спасибо огромное!!! Прям то, что нужно  
 
А можно то же самое сделать и с медиа плеером? Только там не нужно наводить мышку. Достаточно жать кнопку (см. выше я выкладывал файл)
 
Вопрос с медиа плеером снимаю. Сам разобрался :)
 
Уважаемый ZVI (или кто-нибудь кто сможет помочь),  
 
Ваш прекрасный макрос отлично проработал в 2003-м экселе, но в 2007-м работать отказывается. Подскажите, пожалуйста, способы его лечения
 

Добрый вечер Дмитрий, продолжение Вашей темы было здесь: <BR>http://www.planetaexcel.ru/forum.php?thread_id=5801 <BR>и там я уточнял, что "в XL2007 работать не будет, так как метод RangeFromPoint в XL2007 работает иначе, чем во всех предыдущих версиях: не «видит» объектов, расположенных поверх ячеек".

 
Другими словами, Excel2007 в этом смысле неизлечим, нужны иные методы.
 
{quote}{login=ZVI}{date=10.06.2010 12:06}{thema=}{post}Другими словами, Excel2007 в этом смысле неизлечим, нужны иные методы.{/post}{/quote}  
ZVI, большое спасибо, что откликнулись!
Страницы: 1
Наверх