powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
25 сообщений из 54, страница 1 из 3
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36414952
NadyaP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер! Пожалуйста, подскажите, как сделать в Excel следующее:
Есть таблица с картинками небольшого размера и данными к каждой картинке. Необходимо, чтобы при нажатии (либо при наведении) на картинку она увеличивалась в отдельном окне. Заранее спасибо.
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36414966
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NadyaP,

а что не получается?
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36415208
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NadyaP,

сделайте UserForm c PictureBox и в нем отображайте увеличенную картинку.
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36416761
NadyaP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В VB я новичок. Так что, если можно, объясните подробнее, что делать.
Один вариант представляю себе так:
На лист Excel добавила объект Image1 с маленькой картинкой, например, при одном Click должна открываться UserForm (большое окно с той же картинкой). То есть UserForm_Activate ().
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36416930
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NadyaP,

ну если по простому, то можно сделать так,

1. Создать форму, в нее поместить картинку увеличенного размера как Image (если это будет стационарная картинка).
2. Создать макрос который будет эту форму показывать. Показывает форму команда

Код: plaintext
1.
UserForm1.Show  ' где UserForm1 имя Вашей формы. По умолчанию UserForm1

3. Миниобразец картинки поместить на лист просто копированием из любого источника (например графического редактора)
4. Повесить на него макрос, который показывает Вашу форму. (правой кнопкой мыши назначить макрос)

Но Вам наверняка нужно более чем одну картинку показывать. Если количество картинок больше 3-5 ти штук, то мой способ не кошер, много делать руками.
Но и помочь Вам без более подробного описания задачи нельзя.
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36417034
NadyaP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shamanus, спасибо большое.

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

я же написал:
нужно подробнее описать задачу, сколько картинок примерно, где находятся изначально, размер, назначение файла и т.п.
Без этого сложно решить задачу.

Если например это прайс отправляемый покупателям, то внешнюю папку для подзагрузки картинки использовать нельзя, только хранить картинку в самом файле.
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36419085
NadyaP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shamanus,

Должен быть один файл, содержащий в одном столбце около 400 рисунков, в соседнем описание, может быть, будут еще столбцы. Картинки будут легкие (схематично нарисованные детали), хорошее качество не требуется - главное при увеличении должно быть понятно, что нарисовано.
Картинки должны хранится в самом файле. При наведении на картинку она появляется увеличенная в отдельном окне, курсор убираем - исчезает. Это глобально.


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

Код: plaintext
UserForm1.Hide
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36419988
NadyaP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Михаил, спасибо
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36420106
NadyaP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Михаил, подскажите, пожалуйста,


Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

ЧТО НАПИСАТЬ ЗДЕСЬ?????

UserForm1.Show

Else
UserForm1.Hide

End If

End Sub
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36420129
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: NadyaP
> ЧТО НАПИСАТЬ ЗДЕСЬ?????

Что бы что произошло?

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


Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)

ЧТО НАПИСАТЬ ЗДЕСЬ?????

UserForm1.Show

Else
UserForm1.Hide

End If

End Sub
Например это
Код: plaintext
1.
2.
3.
4.
5.
If ( 10  <= X And X <= Image1.Width -  10 ) And ( 10  <= Y And Y <= Image1.Height -  10 ) Then
    UserForm1.Show
Else
    UserForm1.Hide
End If
Конечно, подход не профессиональный, а что делать - MouseMoveOver и MouseMoveOut отсутствуют, зато очень простой. В при этой реализации мышкой по Image1 очень быстро двигать нельзя, форма может не исчезнуть. Применимая в примере цифра 10 может быть изменена на другую, это зависит от размеров Image1 и пожелания автора.
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36421019
NadyaP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
.Михаил.,

попробовала, как вы советуете - форма появляется, как и раньше без цикла, и не исчезает, хотя я меняла 10 на меньшие и большие значения.
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36421306
.Михаил.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NadyaP,
попробуйте свойство вашей формы изменить так
Код: plaintext
UserForm1.ShowModal = False
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36421379
NadyaP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
.Михаил.,
не работает - ShowModal не найден.
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36421387
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.Михаил.
Код: plaintext
1.
2.
3.
4.
5.
If ( 10  <= X And X <= Image1.Width -  10 ) And ( 10  <= Y And Y <= Image1.Height -  10 ) Then
    UserForm1.Show
Else
    UserForm1.Hide
End If
Конечно, подход не профессиональный, а что делать - MouseMoveOver и MouseMoveOut отсутствуют, зато очень простой. В при этой реализации мышкой по Image1 очень быстро двигать нельзя, форма может не исчезнуть. Применимая в примере цифра 10 может быть изменена на другую, это зависит от размеров Image1 и пожелания автора.


А я вот лично вообще не врубаюсь, у вас Image1 где находится? Если на UserForm1, то UserForm1.Show в принципе сработать не может ибо, событие никогда не возникнет. А если не на форме, то где?
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36421491
.Михаил.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
А я вот лично вообще не врубаюсь, у вас Image1 где находится? Если на UserForm1, то UserForm1.Show в принципе сработать не может ибо, событие никогда не возникнет. А если не на форме, то где?
Image1 [с уменьшеным изображением] находится на листе, при наведении не него курсором должна появляться форма UserForm1, на которой будет свой Image [с увеличеным изображением].
NadyaP
не работает - ShowModal не найден.
в редакторе VBA выберите UserForm1 и в окне Properties измените свойство ShowModal на значение False
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36421522
NadyaP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
.Михаил.,
спасибо большое - все получилось!

А что делать, если много картинок в таблице и нужно, чтобы они появлялись и исчезали?
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36421590
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.Михаил.Image1 [с уменьшеным изображением] находится на листе, при наведении не него курсором должна появляться форма UserForm1, на которой будет свой Image [с увеличеным изображением].

Но картинок много. Вы предлагаете под каждую создавать контейнер в виде Image1(n)?

А как это будет делать пользователь, который наполняет файл картинками? (впрочем, вопрос наполнения не поднимался)

Я сам не очень силен в VBA (все больше по VB), в экселе сам лист иметт какие-то события, в частности MouseOver?
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36421831
.Михаил.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NadyaP
Должен быть один файл, содержащий в одном столбце около 400 рисунков, в соседнем описание, может быть, будут еще столбцы. Картинки будут легкие (схематично нарисованные детали), хорошее качество не требуется - главное при увеличении должно быть понятно, что нарисовано.
Картинки должны хранится в самом файле. При наведении на картинку она появляется увеличенная в отдельном окне, курсор убираем - исчезает.
Shocker.Pro
Но картинок много. Вы предлагаете под каждую создавать контейнер в виде Image1(n)?
А как это будет делать пользователь, который наполняет файл картинками? (впрочем, вопрос наполнения не поднимался)

Да, картинок много, около 400. Значит на листе будет ImageN, где N = от 1 до 400. Для каждого ImageN нужно будет описывать событие
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private Sub Image1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If ( 10  <= X And X <= Image1.Width -  10 ) And ( 10  <= Y And Y <= Image1.Height -  10 ) Then
    ' запуск некой функции
Else
    UserForm1.Hide
End If
End Sub
...
Private Sub Image2_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)...
...
Private Sub Image400_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
В описании каждого события при выполнении описанного выше условия должна запускаться некая функция (процедура) с входным параметром - путь к увеличенному файлу-картинки. Эта функция должна показывать форму UserForm1 и загружать картинку в Image, находящийся на форме UserForm1. При невыполнении условия - форма должна скрываться... Вот так, это мое видение, то как это можно реализовать.
Если просто добавить картинку на лист Excel, то... короче, она "не имеет" событий.
Может можно как-нить картинку "засунуть" в комментарий (Comment) ???
Shocker.Pro
Я сам не очень силен в VBA (все больше по VB), в экселе сам лист иметт какие-то события, в частности MouseOver?
Лист Excel не имеет событий, связяанных с "движением курсора мыши".
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36422026
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.Михаил.
Да, картинок много, около 400. Значит на листе будет ImageN, где N = от 1 до 400. Для каждого ImageN нужно будет описывать событие

А почему не использовать одно событие и массив контролов? В VBA такого нет?
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36422262
.Михаил.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProА почему не использовать одно событие и массив контролов? В VBA такого нет?
Есть, но я мало разбираюсь в этом
Нужно в проект вставить модуль класса и назвать его ImageMyMoveClass и ввести следующий код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Public WithEvents ImageGroup As msforms.Image
Private Sub ImageGroup_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If ( 10  <= X And X <= ImageGroup.Width -  10 ) And ( 10  <= Y And Y <= ImageGroup.Height -  10 ) Then
    UserForm1.Image1.Picture = ImageGroup.Picture ' это хз может не работать, но... идея такая
    UserForm1.Show
Else
    UserForm1.Hide
End If
End Sub
потом создать модуль и поместить туда это
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Option Explicit
Public MyImages( 1  to  400 ) As New ImageMyMoveClass
Public Sub MyStart()
Set MyImages( 1 ) = Image1
Set MyImages( 2 ) = Image2
'...
Set MyImages( 400 ) = Image400
End Sub
Конечно, 400 строк это не совсем красиво, просто надо подумать и сделать по другому, это только для наглядности.
Далее так
Код: plaintext
1.
2.
3.
Private Sub Workbook_Open()
MyStart
End Sub
или самому запускать MyStart или как-нить по другому. MyStart обязательно должна быть запущена.
Свойство Image1, который на форме UserForm1, PictureSizeMode = 1 - fmPictureSizeModeClip
Свойство ImageN, которые на листе, PictureSizeMode = 3 - fmPictureSizeModeZoom
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36422329
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.Михаил.
Есть, но я мало разбираюсь в этом

Ну тогда лучше сначала разобраться :)
Потому что если можно сделать массив однотипных контролов, ваш код становится резко не нужен
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36422579
.Михаил.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro
Ну тогда лучше сначала разобраться :)
Потому что если можно сделать массив однотипных контролов, ваш код становится резко не нужен
Этот код не я придумал, а взял из книжки по VBA в Excel. У меня в Excel все работает. Если есть другие предложения... пожалуйста.
...
Рейтинг: 0 / 0
25 сообщений из 54, страница 1 из 3
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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