Имеется интересный скрипт, сделанный для Эксель 2003, позволяющий фиксировать изображение на рабочей области экселя. Вы можете скрывать это закрепленное изображение или наоборот отображать его. А также можете выбирать разные графические файлы для этой картинки. Главная идея заключается в том, чтобы при прокрутке рабочей области по горизонтали или по вертикали - картинка оставалась закрепленной на рабочей области. Единственная досадная проблема - в том, что картинка не привязана к одному конкретному листу. И при переходе на другой лист - она никуда не исчезает. Кто-нибудь знает как привязать ее к одному произвольному листу - для того, чтобы при переходе на другой лист - картинка исчезала бы, а при возврате на первоначальный лист - зафиксированная картинка вновь появлялась бы ? Это нужно для того, чтобы к примеру - на ряде листов - были бы свои, уникальные зафиксированные изображения. Примечание: Такая функция эксель как "закрепление области" - совершенно из другой пьесы и здесь не подходит.
Изменение свойств формата рисунка - это вообще к чему ? Рисунок при этих изменениях - все равно прокручивается вместе с рабочей областью. Как по горизонтали, так и по вертикали.
ttt480, Вы утверждаете, что свойства Visible у картинки в Vba нет. Вставьте на лист картинку и выполните поочерёдно два макроса:
Код
Sub Visible_Yes()
ActiveSheet.Shapes.Range(Array("Picture 1")).Visible = True
End Sub
Sub Visible_No()
ActiveSheet.Shapes.Range(Array("Picture 1")).Visible = False
End Sub
Юрий М написал: Вставьте на лист картинку и выполните поочерёдно два макроса
Я не утверждал, что свойства Visible у картинки в VBA нет. Я утверждаю, что оно есть и дай бог, чтобы было всегда.... Да, действительно если добавить фотографию - это фото исчезает и появляется при использовании этих макросов. Выглядит очень красиво. Но не совсем понятно как это относится к теме. Я приложил к начальному сообщению файл, где автор уже провел основную работу по созданию изображения нечувствительного к прокрутке. Это и есть самое главное, что сделано. Автор файла - молодец. Я просто спрашивал - возможно ли на каждый лист сделать свое отдельное изображение. Чтобы на каждом листе - была бы своя, уникальная картинка нечувствительная к прокрутке. Это и есть суть вопроса.
SuperCat написал: Дык вы не картинку добавляете, а форму, а это две разные вещи.
Там ведь понимаете, в чем главная хитрость. Изображение вставляется не напрямую, а через форму. Изначально вообще было большой проблемой - хоть какое-то изображение на листе закрепить. И самая удачная реализация - достигается именно через форму. Умные люди ломали голову - как простую фотографию зафиксировать - ничего не получалось. В итоге решили это сделать через форму. Однако проблема остается. Неудобно работать, когда эта картинка перемещается при переходе с листа на лист.
ttt480 написал: Но не совсем понятно как это относится к теме
Цитата
ttt480 написал: Единственная досадная проблема - в том, что картинка не привязана к одному конкретному листу. И при переходе на другой лист - она никуда не исчезает.
Я и говорил про это - картинку можно скрывать. И про позиционирования я вообще ни словом )) Оно уже реализовано.
ZVI написал: переход на другие книги, а также работу и в 64-битном Excel
Файл в принципе работает как надо. В общем я хотел немного доработать этот файлик - поставить эти кнопки управляющие картинкой - на каждом листе. Чтобы на каждом листе была своя картинка. Если допустим осуществляется переход на другой лист - картинка текущего листа (с текущим расположением исчезает) и появляется другая картинка, которая прикреплена к другому листу и с другим расположением. Я пытался сам что-то сделать. Размножил лист со скриптом - в тройном количестве и создал две новые формы (с другими картинками). Что-то не получается.... Все три кнопки - как бы управляют одной картинкой. Вот файлик который я пытался доработать.
Доброе время суток Вы размножили только листы и формы. А вот кнопки вызывают одни и те же процедуры, которые работают только с одной исходной формой. Пропишите для кнопок на остальных листах свои процедуры для своих форм. Плюс добавьте код в событие открытия книги для загрузки остальных форм.
Андрей VG написал: Пропишите для кнопок на остальных листах свои процедуры для своих форм
Значит я вот щелкаю правой клавишей на кнопке - выбираю команду "Присвоить макрос"... Меня выкидывает на код, который прописан в "Module.1" и который отвечает за самую первую форму. То есть как я понял - если я создаю другие формы, то нужно создавать соответствующие модули под них ? Значит нужно создать еще два модуля и привязать к ним кнопки с соответствующих двух листов?
Да и еще добавил два объекта в код. И присвоил код формам (ну как присвоил - взял код из первой формы и скопировал на две остальные формы) В итоге вся эта конструкция немного утратила работоспособность и стала ругаться при нажатии на кнопки. Три формы открываются - но все на одном листе, друг на друге и их двигать нельзя...
ttt480 написал: То есть как я понял - если я создаю другие формы, то нужно создавать соответствующие модули под них ?
Именно модули создавать необязательно: можно в одном модуле разместить несколько процедур. Но ещё можно не повторять процедуры для каждого листа, а передавать туда имя листа. P.S. Файл не смотрел.
А что именно не работает? Если на компьютере кодовая страница Windows по умолчанию отлична от Win-1251, то могут быть проблемы с кодовым именем листа (сейчас это кириллица). Взял на себя смелость изменить (надеюсь, Владимир не возражает).
sokol92 написал: А что именно не работает?Если на компьютере кодовая страница Windows по умолчанию отлична от Win-1251, то могут быть проблемы с кодовым именем листа (сейчас это кириллица). Взял на себя смелость изменить (надеюсь, Владимир не возражает).
Добрый день! Очень хорошее решение по привязке картинки, спасибо всем кто разрабатывал коды. Возможно, чтобы в книге было 3 листа и на каждом была бы своя картинка?