Страницы: 1
RSS
Как зафиксировать изображение в Excel 2003?
 
Добрый день, подскажите пожалуйста как зафиксировать изображение в Excel 2003. Надо зафиксировать изображение чтобы при прокрутке оно находилось в верхнем правом углу, закрепление области не подходит.
Изменено: zvezdochot - 22.03.2013 16:40:13
 
1. Правая кнопка
2. Формат рисунка
3. Свойства
4. Не перемещать и не изменять размеры
There is no knowledge that is not power
 
Ну. И что будет при прокрутке? :D
Цитата
zvezdochot пишет:
Надо зафиксировать изображение чтобы при прокрутке оно находилось в верхнем правом углу, закрепление области не подходит.
Я сам - дурнее всякого примера! ...
 
Могу предложить единственный, на мой взгляд, вариант, но не думаю, что оно Вам понравится  :)
 
Спасибо конечно, но не совсем то что нужно. Хотя, подскажите как данный рисунок можно отредактировать?
 
Вы с редактором VBA (это в экселе внутри такой есть) знакомы?
Мне кажется, что всетаки это плохой вариант.
 
В принципе можно картинку и прямо на форму грузить.
но я не могу понять, почему в моем коде при двойном щелчке картинка не загружается на форму?  :(
Учимся сами и помогаем другим...
 
ber$erk, да вроде бы всё загружается.
хороший пример ;)

пс. а как таскать по экрану такое чудо? только через меню по Alt+Space?
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Выбранная картинка у меня загрузилась, но потом подвис Excel...
Смущает надпись "Файлы Excel" в Диалоге выбора файлов ))
 
У меня загрузилась нормально, но к сожалению на сеанс. Сохранение пока открытый вопрос.
ikki,  про перемещение здорово! Я думал только через редактор.  :)
Изменено: Sergei_A - 23.03.2013 23:10:21
 
Вопрос к zvezdochot
Планируется ли смена изображения в ходе работы, и как часто?
 
Не планируется. Всем Спасибо, нашол немного другое решение для своей проблемы.
 
zvezdochot, а поделиться?
 
Цитата
ikki: ... а как таскать по экрану такое чудо? только через меню по Alt+Space?
Таскать можно так:

1. С API:

Код
Private Declare Function SendMessage Lib "User32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Sub ReleaseCapture Lib "User32" ()
Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  If Button = 1 Then
    ReleaseCapture
    SendMessage FindWindow("ThunderDFrame", Me.Caption), 161&, 2&, 0&
  End If
End Sub


2. Без API:

Код
Private MeX!, MeY!

Private Sub UserForm_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  If Button = 1 Then
    MeX = X
    MeY = Y
  End If
End Sub

Private Sub UserForm_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
  If Button = 1 Then
    Me.Left = X + Me.Left - MeX
    Me.Top = Y + Me.Top - MeY
  End If
End Sub
Изменено: ZVI - 25.03.2013 13:09:43
 
Владимир, может по сохранению подскажете. Проверил вариант без API. Таскается мышкой отлично, но как сохранить координаты, чтобы в следующий раз форма открылась в последней своей позиции.
 
Запомнить куда-нибудь Top и Left формы при закрытии/сохранении.
 
Да, можно запомнить, например, в скрытых именах книги:
Код
Private Sub UserForm_Initialize()

    ' ... Здесь то, что было раньше ...

    ' Восстановить положение формы
    On Error Resume Next
    Me.StartUpPosition = 0
    Me.Left = [MyForm.Left]
    Me.Top = [MyForm.Top]

End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
  ' Запомнить положение формы
  ThisWorkbook.Names.Add "MyForm.Left", Me.Left, False
  ThisWorkbook.Names.Add "MyForm.Top", Me.Top, False
End Sub
 
Вот спасибо!
Поставил запоминание координат на UserForm_MouseUp.
По аналогии сделал запоминание для картинки. Интересно, иногда при смене картинки происходит приличная задержка, а в другой раз нет.
Тем не менее, с Вашей помощью, считаю эту задачу для себя решенной.  :)  

кому-то пригодится
Изменено: Sergei_A - 25.03.2013 17:33:21
 
Сделано, конечно очень здорово.
Но картинка не меняется при переходе на другой лист.

Это нельзя реализовать?

То есть чтобы положение картинки не менялось при прокрутке на одном листе, а при переходе на другой лист она бы исчезала. А при возврате на лист со скриптом - снова бы появлялась.
Иными словами - можно ли картинку привязать к одному конкретному листу, а не книге в целом ?
 
У картинки есть свойство Visible - вот его и менять при активации/деактивации листа.
 
Цитата
Юрий М написал:
У картинки есть свойство Visible - вот его и менять при активации/деактивации листа.
Просмотрел свойства формы (Picture_Form Properties). Там одно единственное упоминание Visible - это параметр KeepScrollBarsVisible - но он в общем-то ничего не меняет.

Нигде в макросе параметр Visible больше не встречается.
 
Вы уж определитесь, в какой теме будет обсуждение.
И я не говорил про конкретный код (файл не смотрел даже) - я говорил ТОЛЬКО про свойства картинки.
 
Цитата
Юрий М написал:
Вы уж определитесь, в какой теме будет обсуждение.
И я не говорил про конкретный код (файл не смотрел даже) - я говорил ТОЛЬКО про свойства картинки.
Обсуждать тогда лучше не в этой теме. Только вот последнее сообщение напишу....
Насчет свойств картинки - при включении Режима конструктора - эта картинка вообще исчезает, поэтому какие-либо свойства выбрать - становится вообще невозможно.      
Редактировать форму картинки (изменять свойства, размер и т.д.) можно - в редакторе Visual Basic. И там я не нашел такого параметра как Visible.
 
Цитата
ttt480 написал:
И там я не нашел такого параметра как Visible.
Есть такой - Вы попробуйте ))
 
В 2013 версии не работает  в 64 битной системе
Изменено: Венер А - 07.10.2022 09:52:12
 
del
Изменено: evgeniygeo - 07.10.2022 10:38:14
Страницы: 1
Наверх