Имя: Пароль:
1C
1С v8
.Protect 1C\VBA
0 moonq4
 
14.11.13
17:38
Всем привет, хочу программно запоролить книгу Есxel, для этого я ее программно открываю, задаю пароль и закрываю, выглядит примерно так:

Попытка
Excel    = Новый COMОбъект("Excel.Application");
WB    = Excel.Workbooks.Open(ИмяФайла);
WB.Protect(Пароль);
WB.Close(0);
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;

Как я понял, у метода .Protect() есть еще какие параметры, но ни как не могу понять какие (ну кроме пароля), весь vba help облазить, ни черта не понял, хелпаните народ.
1 mikecool
 
14.11.13
17:40
хелп тебе, хелп!
2 Господин ПЖ
 
14.11.13
17:42
>весь vba help облазить

разрешаю облазить msdn по объектной модели экселя
3 mikecool
 
14.11.13
17:43
у меня так
Protect(1, 1, ПарольНаРедактированиеДокумента)
4 moonq4
 
14.11.13
17:45
(1),(2) Облазил*
5 moonq4
 
14.11.13
17:47
(3), Ошибка при вызове метода контекста (Protect): Произошла исключительная ситуация (0x80070057)

Что то не хочет...
6 Господин ПЖ
 
14.11.13
17:47
(4) никуа не верю
7 moonq4
 
14.11.13
17:48
(6) придется
8 sash-ml
 
14.11.13
17:50
Sub Protect([Password], [Structure], [Windows])
ActiveWorkbook.Protect Structure:=True, Windows:=True
9 moonq4
 
14.11.13
17:51
(8) На 1Совском языке это как выглядит?
10 moonq4
 
14.11.13
17:52
WB    = Excel.Workbooks.Open(ИмяФайла);
WB.Protect([Пароль],[true],[true]);

так?
11 sash-ml
 
14.11.13
17:53
по идее
WB    = Excel.Workbooks.Open(ИмяФайла);
WB.Protect(Пароль,истина,истина);
еще покури
Sub SaveAs([Filename], [FileFormat], [Password], [WriteResPassword], [ReadOnlyRecommended], [CreateBackup], [AccessMode As XlSaveAsAccessMode = xlNoChange], [ConflictResolution], [AddToMru], [TextCodepage], [TextVisualLayout], [Local])
12 moonq4
 
14.11.13
17:56
(11) Ошибки нет, но не паролит...
13 sash-ml
 
14.11.13
18:01
Protect запрещает удалять создавать и переименовывать листы, а тебе что нужно?
14 moonq4
 
14.11.13
18:01
опана, мне нужно пароль на книгу поставить...
15 Господин ПЖ
 
14.11.13
18:02
казалось бы причем тут пароль...
16 moonq4
 
14.11.13
18:04
Тогда что вместо протекта? И какие параметры?
17 sash-ml
 
14.11.13
18:05
както так WB.SaveAs(Имяфайла,,Пароль)
18 moonq4
 
14.11.13
18:07
(17) Ошибка при вызове метода контекста (SaveAs): Произошла исключительная ситуация (Microsoft Excel): Метод SaveAs из класса Workbook завершен неверно
.....
19 sash-ml
 
14.11.13
18:11
попробуй  WB.SaveAs(Имяфайла,51,Пароль,,Ложь)
20 moonq4
 
14.11.13
18:15
(19) Твоюж мать, сработало, а 51 это что за параметр такой странный?)
21 sash-ml
 
14.11.13
18:20
51 это тип файла xlOpenXMLWorkbook
22 sash-ml
 
14.11.13
18:22
синтаксис помощник по ВБА открывается в экселе комбинацией АЛЬТ+Ф11 а потом Ф2
23 moonq4
 
14.11.13
18:24
(22) еще раз спасибо!
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший