Приветствую вас друзья!
Близится 1 апреля и я в очередной раз задумываюсь о том, как бы разыграть коллег на работе с помощью Excel. Все время не доходили до этого руки, а в интернете ничего подобного не нашел. И вот я решил начать эту тему тут и если вы дополните тему своими идеями было бы круто. Конечно же эти шутки не над опытными пользователями, но все же)
Итак, пример 1:
Открываем нужный документ, создаем лист с названием "Всё", размещаем на нем нужную информацию и делаем его скрытым. Заходим в редактор Visual Basic и в модуль книги вставляем код:
Что получаем в итоге: При открытии документа пользователю задается вопрос: Хочешь покажу нечто интересное?.
Если он отвечает да- то лист "всё", с тем, что мы там разместили становится видимым, а все остальные скрываются
Пользователю предлагается отгадать загадку, при правильном все скрытые листы отображаются, а лист "Всё" снова становится скрытым.
Если пользователь на первый вопрос отвечает нет - документ просто закрывается без сохранения. То есть пользователь просто вынужден нажать ДА.
PS стоить помнить что документ должен поддерживать макросы, а у пользователя макросы должны быть разрешены.
Пример прикрепляю.
Близится 1 апреля и я в очередной раз задумываюсь о том, как бы разыграть коллег на работе с помощью Excel. Все время не доходили до этого руки, а в интернете ничего подобного не нашел. И вот я решил начать эту тему тут и если вы дополните тему своими идеями было бы круто. Конечно же эти шутки не над опытными пользователями, но все же)
Итак, пример 1:
Открываем нужный документ, создаем лист с названием "Всё", размещаем на нем нужную информацию и делаем его скрытым. Заходим в редактор Visual Basic и в модуль книги вставляем код:
Код |
---|
Private Sub Workbook_Open() Dim result As String Dim sh As Worksheet Dim a As Variant If MsgBox("Хочешь покажу нечто интересное?", vbYesNo, "Я хочу спросить тебя") = vbYes Then 'Выводим первоначальное сообщение Worksheets("Всё").Visible = xlSheetVisible 'открываем заранее внедрённый лист For Each sh In Worksheets If Not sh.Name Like "*Всё*" Then sh.Visible = xlSheetVeryHidden 'Скрываем все листы книги, кроме листа с именем "Всё" Next Start: result = InputBox("У отца Мэри есть 5 дочерей: Чача, Чичи, Чече, Чочо. Как зовут 5 дочь?", "Отгадаешь загадку, верну всё на место") 'Выводим окно с загадкой If result <> "Мэри" Then 'Пишем ответ к загадке GoTo Start 'Если пользователь дал не правильный ответ, вопрос задается снова. Else 'Если правильно - делаем спрятанные листы видимыми, а лист Всё- скрываем For Each a In Worksheets a.Visible = True Next Worksheets("Всё").Visible = xlSheetVeryHidden 'Скрываем лист "Всё" End If Else 'Если на первый вопрос пользователь отвечает "НЕТ" - MsgBox "Тогда пока!" 'Пишем ему сообщение ThisWorkbook.Close 0 'Закрываем документ без сохранения End If End Sub |
Что получаем в итоге: При открытии документа пользователю задается вопрос: Хочешь покажу нечто интересное?.
Если он отвечает да- то лист "всё", с тем, что мы там разместили становится видимым, а все остальные скрываются
Пользователю предлагается отгадать загадку, при правильном все скрытые листы отображаются, а лист "Всё" снова становится скрытым.
Если пользователь на первый вопрос отвечает нет - документ просто закрывается без сохранения. То есть пользователь просто вынужден нажать ДА.
PS стоить помнить что документ должен поддерживать макросы, а у пользователя макросы должны быть разрешены.
Пример прикрепляю.
Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!