![]() |
![]() |
![]() |
|
1C - Excel - защита файла паролем. Как? Ø |
☑ | ||
---|---|---|---|---|
0
Мимо Шел
24.06.05
✎
18:17
|
При открытии файла excel из 1С как подставить экселевский пароль, чтобы не вводить его вручную?
|
|||
1
pit
24.06.05
✎
18:22
|
В экселе - Алт-Ф11, Ф1 - потом читать английский по белому....
|
|||
2
Мимо Шел
24.06.05
✎
19:45
|
>>expression.Open(FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad)
И как это использовать? |
|||
3
Мимо Шел
25.06.05
✎
04:00
|
И всетаки?
|
|||
4
Дурочка 1С
25.06.05
✎
04:43
|
Запись макроса запускал?
|
|||
5
Мимо Шел
25.06.05
✎
04:52
|
А он ввод пароля не фиксирует
|
|||
6
Мимо Шел
25.06.05
✎
15:53
|
Ну help me пожалуйста?
|
|||
7
Мимо Шел
25.06.05
✎
22:41
|
Буду настойчив
|
|||
8
pit
26.06.05
✎
09:49
|
"Не выходит у Данилы каменный цветок" (с) Сказ Бажова
. Ну так рассказывать? Или сам найдешь? P.S. 10 минут и все работает... |
|||
9
Masita
26.06.05
✎
11:14
|
Рассказывать-рассказывать.... все выходные жду...
Спасибо заранее... |
|||
10
Мимо Шел
26.06.05
✎
13:40
|
2(8) Весь в нетерпении. И заранее благодарен
|
|||
11
pit
26.06.05
✎
16:39
|
expression.Open(FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad)
Это описано для ВБА.... В ВБА параметры можно задавать через ключевые слова или позиционно . например, в макросе можно написать Workbooks.Open FileName :="ПутьИимяЭтогоДолбаногоФала",Password:="толпооббб" или Workbooks.Open "ПутьИимяЭтогоДолбаногоФала",,,,"толпооббб" . При оле возможен (по моему... я вообще весьма слабо знаю ВБА) только позиционный способ Но там возникает проблема - тип данных д.б. вариант... ("Password Optional Variant. A string that contains the password required to open a protected workbook. If this argument is omitted and the workbook requires a password, the user is prompted for the password.") . и эксель не понимает указанного пароля - похоже, из-за неверного преобразования типов Я уже пару раз налетал на такие приколы с вордом и экселем. Но по поводу пароля - не могу найти обработку, где была фишка - как правильно установить тип передаваемой строки с паролем..... Найти не могу... . Но всё, что нельзя - то можно, если осторожно.... . Пример процедуры, открывающей файло с паролем немного через одно место FileName - путь и имя файла в виде Диск:\каталог\...\имя.xls password - cтрока пароля . Процедура работает, но надо проверить, будет ли она работать в случае, если у юзера открыт Ёксель и нем открыта пара его книг... Может не уничтожать макрос после открытия - а в нем ведь светится пароль на открытие.... . //******************************************* Procedure OpenPassword(FileName,Password) E = CreateObject("Excel.Application"); ВотЭтоИЗапихаем= "Sub MacroPassword()" +LineBreak+ "Workbooks.Open FileName :=""" + TrimAll(FileName) + """,Password:=""" + TrimAll(password) + """" +LineBreak+ "End Sub"; E.DisplayAlerts=0; E.WorkBooks.Add(); b=E.ActiveWorkBook; n=b.Name(); try _VB=b.VBProject.VBComponents; except DoMessageBox( "Надо нежно погладить Эксель по (_|_) "); DoMessageBox( "И включить ДОВЕРИЕ к Visual Basic Project !"); E.Visible=1; E.Application.DisplayAlerts=1; return; endTry; Count=_VB.Count(); _VB.Add(1); _VB.Item(count+1).CodeModule.InsertLines(1,ВотЭтоИЗапихаем); E.Application.Run("MacroPassword"); E.Application.workbooks(n).Close(); E.Application.DisplayAlerts=1; E.visible = 1; E = ""; EndProcedure |
|||
12
Masita
26.06.05
✎
17:01
|
Спасибо... красиво... и макрос уничтожается...
|
|||
13
Мимо Шел
26.06.05
✎
17:49
|
Все отрабатывает, а пароль остается... Эксель 2003...
|
|||
14
pit
26.06.05
✎
18:25
|
Либо перепиши макрос на работу с параметрами...
Либо посмотри, почему не уничтожается... 2003 нет... Там вроде объектная модель и поведение поменялось немного... |
|||
15
pit
26.06.05
✎
18:57
|
//*******************************************
Procedure OpenPassword(FileName,Password) E = CreateObject("Excel.Application"); ВотЭтоИЗапихаем= "Sub MacroPassword(FName,Pword)" +LineBreak+ "Workbooks.Open FileName:=fName,Password:=pword" +LineBreak+ "End Sub"; E.DisplayAlerts=0; E.WorkBooks.Add(); b=E.ActiveWorkBook; n=b.Name(); try _VB=b.VBProject.VBComponents; except DoMessageBox( "Надо нежно погладить Эксель по (_|_) "); DoMessageBox( "И включить ДОВЕРИЕ к Visual Basic Project !"); E.Visible=1; E.Application.DisplayAlerts=1; return; endTry; Count=_VB.Count(); _VB.Add(1); _VB.Item(count+1).CodeModule.InsertLines(1,ВотЭтоИЗапихаем); E.Application.Run("MacroPassword",TrimAll(FileName),TrimAll(Password)); E.Application.workbooks(n).Close(); E.Application.DisplayAlerts=1; E.visible = 1; E = ""; EndProcedure |
|||
16
vrag
26.06.05
✎
19:24
|
Workbooks.visible=1;
--------- Workbooks.visible=0; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |