Как вывести форму до загрузки листа.

Программирование на Visual Basic for Applications
Андрей Васюта
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 91
Зарегистрирован: 20.07.2004 (Вт) 19:40

Как вывести форму до загрузки листа.

Сообщение Андрей Васюта » 27.01.2006 (Пт) 17:49

Вопрос: Как мне в Excel показать свою форму перед загрузкой рабочкго листа и если в на моей форме нажмут кнопку "только просмотр " то как запретить или сделать недоступными кнопки (печать, сохранить,сохранить как, вырезать, копировать) что и через меню нельзя было ичерез контекстное тоже.
Большой программе - большие глюки.

Андрей Васюта
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 91
Зарегистрирован: 20.07.2004 (Вт) 19:40

Сообщение Андрей Васюта » 06.02.2006 (Пн) 13:02

С запретами разобрался, а вот как вывести свою форму на перед ...., или может можно как то програмно запретить запрос отключения макросов ...
Большой программе - большие глюки.

$€rg
Обычный пользователь
Обычный пользователь
 
Сообщения: 99
Зарегистрирован: 11.01.2006 (Ср) 10:15
Откуда: Санкт-Петербург

Сообщение $€rg » 06.02.2006 (Пн) 13:16

у меня в F2 этого почему то нет
А. Гарнаев "свойство AutomationSecurity obj Аpp позволяет, константа msoautomationsecuritylow - все макросы включены, з.ы. там всего три константы"

Avtopic
Постоялец
Постоялец
 
Сообщения: 442
Зарегистрирован: 30.09.2005 (Пт) 17:15
Откуда: Tbilisi

Сообщение Avtopic » 06.02.2006 (Пн) 22:18

Я не помню источник, но может вам подойдет:

Force Macros to be Enabled
A common question on Excel newsgroups and forums is 'Can I prevent the macro warning from appearing when you open a workbook that contains macros?'. The simple answer is 'No!'. If you could disable macros using VBA code then it would be very easy for a virus writer to override Office's security settings and take control of your system.
However, you can use the technique described below to only let users make use of your workbook if macros are enabled - I have yet to find a more satisfactory alternative. There is an example file at the bottom of this page.
· In your workbook add a sheet and call it Macros Disabled or something similar. On this sheet put in a warning that the user must enable macros if they wish to use your workbook.

Пример:
· Open the Visual Basic Editor (Alt F11). In the project explorer double-click the ThisWorkbook icon (see here if you're not sure of how to do this). Paste this code. Note: if you named your sheet something other than 'Macros Disabled', you must change the code below to reflect that name.
Код: Выделить всё
Private Sub Workbook_BeforeClose(Cancel As Boolean)
HideSheets
End Sub

Private Sub Workbook_Open()
UnhideSheets
End Sub

Private Sub HideSheets()
Dim sht As Object

Application.ScreenUpdating = False
ThisWorkbook.Sheets("Macros Disabled").Visible = xlSheetVisible
For Each sht In ThisWorkbook.Sheets
If sht.Name <> "Macros Disabled" Then sht.Visible = xlSheetVeryHidden
Next sht
Application.ScreenUpdating = True
ThisWorkbook.Save
End Sub

Private Sub UnhideSheets()
Dim sht As Object
Application.ScreenUpdating = False
For Each sht In ThisWorkbook.Sheets
sht.Visible = xlSheetVisible
Next sht
ThisWorkbook.Sheets("Macros Disabled").Visible = xlSheetVeryHidden
Application.ScreenUpdating = True
End Sub
That's all you need to do. The code is fairly straightforward but is fairly effective.
Вложения
Force macros to be enabled.zip
(38.26 Кб) Скачиваний: 51

Андрей Васюта
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 91
Зарегистрирован: 20.07.2004 (Вт) 19:40

Сообщение Андрей Васюта » 09.02.2006 (Чт) 11:29

К сожалению не то ....
ну да ладно, может кто знает как в Экселе запретить комбинации клавиш (Ctrl+P и Ctrl+C)
Большой программе - большие глюки.

Avtopic
Постоялец
Постоялец
 
Сообщения: 442
Зарегистрирован: 30.09.2005 (Пт) 17:15
Откуда: Tbilisi

Сообщение Avtopic » 09.02.2006 (Чт) 15:28

1. Андрей Васюта писал(а):...или может можно как то програмно запретить запрос отключения макросов ...
По-моему выше указанный принцип как раз то, что нужно для этого вопроса.

2. Андрей Васюта писал(а):...может кто знает как в Экселе запретить комбинации клавиш (Ctrl+P и Ctrl+C)
Код: Выделить всё
Sub PPP()
Application.OnKey "^{c}", ""
Application.OnKey "^{p}", ""
End Sub

Андрей Васюта
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 91
Зарегистрирован: 20.07.2004 (Вт) 19:40

Сообщение Андрей Васюта » 09.02.2006 (Чт) 18:02

Я запускаю у себя прикрепленный документ в посте (Добавлено: 06.02.2006 (Пн) 22:48 Заголовок сообщения:)

и он спрашивает откл макросы или нет, а потом аж скрывает листок.
или у меня что то не то ???
Большой программе - большие глюки.

Андрей Васюта
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 91
Зарегистрирован: 20.07.2004 (Вт) 19:40

Сообщение Андрей Васюта » 09.02.2006 (Чт) 18:18

Мне при нажатии на кнопку нужно отключить возможность комбинаций клавиш (Ctrl+P и Ctrl+C). я пишу ....

Private Sub OnlyRead_Click ()
Application.OnKey "^{c}", ""
Application.OnKey "^{p}", ""
End Sub
... фифекта никакого, все равно копирует и печатает или у меня руки из ЖЕНИ растут
Большой программе - большие глюки.

Avtopic
Постоялец
Постоялец
 
Сообщения: 442
Зарегистрирован: 30.09.2005 (Пт) 17:15
Откуда: Tbilisi

Сообщение Avtopic » 09.02.2006 (Чт) 21:50

1. Принцип основан на том, что Visible = xlSheetVeryHidden можно отключить только программным путем
или в Visual Basic Editor-е.
Автор заранее выставляет VeryHidden для тех листов, которые надо скрыть, в случае если макросы отключены, оставляя видимым
только лист, на котором валяется предложение разрешить макросы.
Если макросы запрещены, то пользователь видит это сообщение. Остальные листы спрятаны.
Если макросы разрешены, то в событии Workbook_Open стоит процедура для снятия VeryHidden с остатних листов, и она работает.
Резюме: тот, кто хочет работать с данной книгой должен разрешить макросы. И никакого принудительного программного запрета на запрет макросов. Тем более что, фактический, это невозможно.
Для проверки: один раз откройте эту книгу с “запрещенным макросом”, а потом с “разрешенным макросом”.


2. наберите в Help-е OnKey


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 108

    TopList