powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
54 сообщений из 54, показаны все 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
Как в 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
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36431834
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hugo121,

Походу не доставало там двух строк:
Код: plaintext
1.
2.
ActiveCell.Comment.Visible = True
ActiveCell.Comment.Shape.Select True
У меня ещё возник вопрос, при использовании вашего кода у меня не просто вывело картинку, а вывело картинку в виде свитка, каким образом так делается, если руками вставлять картинку.
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36431839
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати в самом коде за вывод картинки в виде свитка отвечает эта команда:
Код: plaintext
Selection.ShapeRange.AutoShapeType = msoShapeVerticalScroll
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36431896
Djon Player
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
Sub Вывод_картинки_в_разных_формах()
 Dim i As Integer

 Cells.Clear
 Columns.ColumnWidth =  30 
 
 For i =  1  To  137 
  With Cells(i, (i -  1 ) Mod  5  +  1 )
    .Select
    .AddComment
    .Comment.Visible = False
    .Comment.Text Text:=""
    With ActiveCell
      .Comment.Visible = True
      .Comment.Shape.Select True
      Selection.Font.ColorIndex =  2 
      Selection.ShapeRange.AutoShapeType = i
      Selection.ShapeRange.ScaleWidth  1 , msoFalse, msoScaleFromTopLeft
      Selection.ShapeRange.ScaleHeight  1 , msoFalse, msoScaleFromTopLeft
      Selection.ShapeRange.Fill.Transparency =  0 #
      Selection.ShapeRange.Fill.UserPicture "C:\Documents and Settings\All Users\Документы\Мои рисунки\Образцы рисунков\Зима.jpg"
    End With
  End With
 Next i

End Sub
...
Рейтинг: 0 / 0
Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
    #36431960
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот как автоматом пропорции картинки соблюсти - не получается найти код.
...
Рейтинг: 0 / 0
54 сообщений из 54, показаны все 3 страниц
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как в Excel сделать, чтобы при нажатии на картинку она увеличивалась в отдельном окне?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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