powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
25 сообщений из 54, страница 2 из 3
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36422595
NadyaP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
.Михаил.,

А можно добавить переменную и сделать следующее?
i от 1 до 400

Set MyImages(i) = Image ???
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36422684
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro.Михаил.
Есть, но я мало разбираюсь в этом

Ну тогда лучше сначала разобраться :)
Потому что если можно сделать массив однотипных контролов, ваш код становится резко не нужен

день добрый

поддерживаю этот метод. вот в этой http://www.sql.ru/forum/actualthread.aspx?tid=727505 темке человек поделился классом, который умеет создавать класс контролов и на них вешать однотипное событие. Например нажатие кнопки.

Можно напихать на лист много контролов с фоном в виде миникартинки и именем A*/НомерМиниКартинки/*, а на весь массив повесить событие по нажатию (или фокусу) контрола X выводить форму у которой на инициализацию повесить загрузку image(x)
X- вытаскивать из названия контрола.

для меня пока сложность в имадж класс напихать объектов и сохранить в файле. Но я думаю над этим.
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36422733
.Михаил.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите тогда как получить коллекцию всех контроллов, помещенных на лист Excel?
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36423035
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.Михаил.Подскажите тогда как получить коллекцию всех контроллов, помещенных на лист Excel?

А Вы пример качали? Смотрели?
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36423384
.Михаил.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shamanus.Михаил.Подскажите тогда как получить коллекцию всех контроллов, помещенных на лист Excel?

А Вы пример качали? Смотрели?
Смотрел. Там пример с формой, у формы есть коллекция Controls, содержащая все контроллы, но нужна коллекция контроллов, помещенной на лист Экселя. Или они там [в Controls] есть? Не уверен.
ps: контроллы на форме и на листе могут иметь одинаковое название.

Если на лист поместить контрол с именем Image1, запустить запись макроса и "поюзать его", то обращение будет такое
Код: plaintext
Лист1.Shape("Image1").Select 'как-то так
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36423424
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.Михаил.
Смотрел. Там пример с формой , у формы есть коллекция Controls, содержащая все контроллы, но нужна коллекция контроллов, помещенной на лист Экселя. Или они там [в Controls] есть? Не уверен.
ps: контроллы на форме и на листе могут иметь одинаковое название.

Если на лист поместить контрол с именем Image1, запустить запись макроса и "поюзать его", то обращение будет такое
Код: plaintext
Лист1.Shape("Image1").Select 'как-то так


Мне кажется мы говорим о разных вещах, по моей ссылке вообще- то пример с
Код: plaintext
Application.ActiveSheet.OLEObjects
и если уж на то пошло то
Код: plaintext
For Each  бла..бла in  бла..бла..бла.Shapes

никто не отменял, так что скорее как то вот так .

Только я незнаю способа по установке shape как UserForm.Picture.
А пихать на форму shape не кошер, хотя незнаю.
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36424184
.Михаил.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NadyaP.Михаил.,

А можно добавить переменную и сделать следующее?
i от 1 до 400

Set MyImages(i) = Image ???
нужно Shamanus сказать СПАСИБО!
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Option Explicit
Public MyImages( 1  to  400 ) As New ImageMyMoveClass
Public Sub MyStart()
Dim i as Integer
For i =  1  to  400 
     Set MyImages(i) = Application.ActiveSheet.OLEObjects.Item("Image" & CStr(i))
Next
End Sub
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36424353
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в общем народил примерно такую концепцию

На скрытый лист файла пихаем Макси (увеличенные фото) 400 штук, следим чтобы они были по порядку. Т.е. имя Мини (маленькая копия фото) было равнозначно имени макси.

Скорее всего 400 раз пихать на лист картинку будет неудобно. Лучше всего написать макрос, который из папки при помощи loadpicture будет их забирать и сначала устанавливать Мини как фон
делается так:

Код: plaintext
Set CommandButton1.Picture = LoadPicture("E:\Mini\1.JPG")
можно вначале сделать фон белым

и второй цикл который вставляет Макро на скрытый лист

Теперь сам код файла. При инициации файла (т.е. на WorkBook_Open) вешаем следующий макрос.

1. Читаем со скрытого листа все Макси как picture в массив
2. В коде формы пишем, что в зависимости от имени объекта который её вызвал (допустим Мини134) берет его индекс устанавливает на событие UserForm.Activate смену фона формы (или объекта Image на форме) через UserForm.Picture = Images(134)
3. Создаем однотипное событие, например Click, MouseMove и на него вешаем вызов нашей юзерформ
4. закрытие делаем по координатам мышки или клику по форме (как удобнее)

но это не совсем круто

А круто вот так: при помощи VBA сделать в 400 ячейках 400 примечаний, в качестве каждого примечания вставить картинку увеличенную. Это и есть кошер :)
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36424612
.Михаил.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShamanusА круто вот так: при помощи VBA сделать в 400 ячейках 400 примечаний, в качестве каждого примечания вставить картинку увеличенную. Это и есть кошер :)
как в комментарий Comment "засунуть" картинку?
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36424967
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.Михаил.,

если руками так
- Ячейка,
- права кнопка
- добавить примечание
-------------------------------
- примечание, правой кнопкой
- формат примечания
- цвета и линии
- цвет
- способы заливки
- рисунок вкладка
- рисунок кнопка
- сохранять пропорции рисунка галочка
- ок
- ок
- ручное масштабирование

А как через VBA можно глянуть в записи макроса
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36425010
.Михаил.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shamanus.Михаил.,

если руками так
- Ячейка,
- права кнопка
- добавить примечание
-------------------------------
- примечание, правой кнопкой
- формат примечания
- цвета и линии
- цвет
- способы заливки
- рисунок вкладка
- рисунок кнопка
- сохранять пропорции рисунка галочка
- ок
- ок
- ручное масштабирование

А как через VBA можно глянуть в записи макроса
круто! век живи, век учись...
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36425014
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это в какой версии офиса?

В ХР у меня только закладка "Шрифт"
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36425016
.Михаил.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NadyaP, Вам лучше сделать как Shamanus предлогает, по его словам это "кошерно"...
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36425017
.Михаил.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProЭто в какой версии офиса?

В ХР у меня только закладка "Шрифт"
У меня офис 2003 и там это есть
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36425047
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.Михаил.Shocker.ProЭто в какой версии офиса?

В ХР у меня только закладка "Шрифт"
У меня офис 2003 и там это есть

угу
у меня тоже 2003 он же XP
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36425070
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я понял, надо кликать правой не на само примечание, а на рамку, тогда появляются остальные закладки

Получилось даже в 2000-м

Идеальное решение для темы топика, если, конечно, файл не лопнет :)
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36425084
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProЭто в какой версии офиса?
только закладка "Шрифт" - это если на поле кликать. А вот если на рамке....
Я в 2000 вот "сохранять пропорции" не нашёл...
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36425426
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NadyaP

А Вы уже сделали файл с картинками, можно без макросов, как он по размеру и быстродействию? Может стоит посмотреть в
сторону базы данных? Тот-же MS SQL Express, FireBird. Из средств разработки то-же VB2008?

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36425905
NadyaP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем большое спасибо - буду пробовать...
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36430827
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shamanus.Михаил.,

если руками так
- Ячейка,
- права кнопка
- добавить примечание
-------------------------------
- примечание, правой кнопкой
- формат примечания
- цвета и линии
- цвет
- способы заливки
- рисунок вкладка
- рисунок кнопка
- сохранять пропорции рисунка галочка
- ок
- ок
- ручное масштабирование

А как через VBA можно глянуть в записи макроса
Проделал всё вышесказанное руками, попутно записал макрос, получился такой код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Range("A1").Select
Range("A1").AddComment
Range("A1").Comment.Visible = False
Range("A1").Comment.Text Text:="текст"
Selection.ShapeRange.Fill.Transparency =  0 #
Selection.ShapeRange.Line.Weight =  0 . 75 
Selection.ShapeRange.Line.DashStyle = msoLineSolid
Selection.ShapeRange.Line.Style = msoLineSingle
Selection.ShapeRange.Line.Transparency =  0 #
Selection.ShapeRange.Line.Visible = msoTrue
Selection.ShapeRange.Line.ForeColor.RGB = RGB( 0 ,  0 ,  0 )
Selection.ShapeRange.Line.BackColor.RGB = RGB( 255 ,  255 ,  255 )
Selection.ShapeRange.Fill.Visible = msoTrue
Selection.ShapeRange.Fill.ForeColor.RGB = RGB( 255 ,  255 ,  255 )
Selection.ShapeRange.Fill.BackColor.SchemeColor =  80 
Selection.ShapeRange.Fill.UserPicture "C:\Documents and Settings\All Users\Документы\Мои рисунки\Образцы рисунков\Зима.jpg"
Selection.ShapeRange.ScaleWidth  2 . 09 , msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.ScaleHeight  3 . 57 , msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.ScaleWidth  1 . 71 , msoFalse, msoScaleFromTopLeft
Если потом сделать очистку листа и запустить этот макрос, то он вылетит в ошибку 438 на коде
Код: plaintext
Selection.ShapeRange.Fill.Transparency =  0 #
.
Ошибка Run-time error 438: Объект не поддерживает свойство или метод.
И такая ошибка выпадает на всех последующих строчках.
Предполагаю, что не доступно свойство ShapeRange. Как сделать, чтобы ошибки не было.
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36431057
.Михаил.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Djon Player
Как сделать, чтобы ошибки не было.
Попробуй просто удалить эту строку.
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36431069
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я пробовал уже - ему все Selection.ShapeRange не нравятся :( ...
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36431491
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hugo121Я пробовал уже - ему все Selection.ShapeRange не нравятся :( ...Ага, именно это я и написал. Строку не удалял, просто делал её очистку руками, через Правка-Очистить-Всё.
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36431802
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нашёл:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Sub tt()
Range("A1").Select
Range("A1").AddComment
Range("A1").Comment.Visible = False
Range("A1").Comment.Text Text:="тест"
With ActiveCell
    .Comment.Visible = True
    .Comment.Shape.Select True
    Selection.Font.ColorIndex =  2 
    Selection.ShapeRange.AutoShapeType = msoShapeVerticalScroll
    Selection.ShapeRange.ScaleWidth  1 . 9 , msoFalse, msoScaleFromTopLeft
    Selection.ShapeRange.ScaleHeight  2 . 09 , msoFalse, msoScaleFromTopLeft
    Selection.ShapeRange.Fill.Transparency =  0 #
    Selection.ShapeRange.Fill.UserPicture "C:\Foto\blonde1.JPG"
    Selection.ShapeRange.ScaleWidth  2 . 09 , msoFalse, msoScaleFromTopLeft
    Selection.ShapeRange.ScaleHeight  3 . 57 , msoFalse, msoScaleFromTopLeft
    Selection.ShapeRange.ScaleWidth  1 . 71 , msoFalse, msoScaleFromTopLeft
End With
End Sub

где-то потеряли .Comment.Shape.Select True похоже...
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36431816
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ааа - там два ScaleWidth и одно ScaleHeight лишнее после экспериментов осталось, но не суть...
...
Рейтинг: 0 / 0
25 сообщений из 54, страница 2 из 3
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]