Этот прием позволит Вам выводить на экран окно-заставку при открытии любой заданной книги в Excel.
Заставка появляется сразу после открытия файла и автоматически исчезает через несколько секунд.
Шаг 1. Создаем экранную форму
Откройте редактор Visual Basic (Сервис - Макрос - Редактор Visual Basic) и создайте новую форму, используя команду меню Insert - Form. Появится пустая серая оконная форма будущей заставки. Добавим на нее изображение при помощи панели инструментов Toolbox (если у вас ее не видно, то зайдите в меню View - Toolbox):
Нажмите кнопку Image и растяните на форме прямоугольник - в него будет помещено фоновое изображение. Затем на панели инструментов Properties (если у вас ее не видно, то выберите в меню View - Properties) задайте выберите файл картинки в поле Picture:
Возможно, придется немного изменить размер формы, чтобы изображение уместилось полностью.
Чтобы написать на форме текст, можно использовать элемент управления Label с панели Toolbox:
Ну, и наконец, выделив предварительно всю форму, можно задать текст в строке заголовка, используя свойство Caption в панели Properties:
В итоге у вас должно получиться нечто подобное:
Шаг 2. Добавляем управляющий код
Откройте модуль ЭтаКнига и добавьте в него следующий код:
Private Sub Workbook_Open()
UserForm1.Show
End Sub
Должно получиться следующее:
Затем щелкните правой кнопкой мыши по форме и выберите View Code:
В открывшийся модуль формы добавьте такой код:
Private Sub UserForm_Activate()
Application.OnTime Now + TimeValue("00:00:05"), "KillTheForm"
End Sub
И, наконец, вставьте обычный модуль (Insert - Module) и скопируйте туда это:
Private Sub KillTheForm()
Unload UserForm1
End Sub
Все. Можно закрывать редактор Visual Basic, сохранять файл и пробовать закрыть-открыть книгу...
Как это работает?
При открытии книги Excel выполняет процедуру Workbook_Open из модуля ЭтаКнига. Эта процедура отображает на экране нашу форму-заставку. При отображении формы запускается процедура UserForm_Activate, которая с задержкой в 5 секунд запускает макрос KillTheForm, который убирает форму с экрана.
Дело в том, что в его постановке и выводах произведена подмена, аналогичная подмене в школьной шуточной задачке на сообразительность, в которой спрашивается:
- Cколько яблок на березе, если на одной ветке их 5, на другой ветке - 10 и так далее
При этом внимание учеников намеренно отвлекается от того основополагающего факта, что на березе яблоки не растут, в принципе.
В эксперименте Майкельсона ставится вопрос о движении эфира относительно покоящегося в лабораторной системе интерферометра. Однако, если мы ищем эфир, как базовую материю, из которой состоит всё вещество интерферометра, лаборатории, да и Земли в целом, то, естественно, эфир тоже будет неподвижен, так как земное вещество есть всего навсего определенным образом структурированный эфир, и никак не может двигаться относительно самого себя.
Удивительно, что этот цирковой трюк овладел на 120 лет умами физиков на полном серьезе, хотя его прототипы есть в сказках-небылицах всех народов всех времен, включая барона Мюнхаузена, вытащившего себя за волосы из болота, и призванных показать детям возможные жульничества и тем защитить их во взрослой жизни. Подробнее читайте в FAQ по эфирной физике.