Пароль на открытие файла excel vba

 

ZyXp10it

Пользователь

Сообщений: 50
Регистрация: 01.01.1970

Ситуация: есть папка, куда выгружаются отчеты в формате xls. В целях разграничения доступа принято решение ставить пароль на документе. Из-за слабой защищенности пароля книги/листа, нужно сделать пароль на открытие.  
Вопрос: Возможно ли средствами VBA сделать пароль на открытие каждого найденного xls файла в папке?

 

Микки

Пользователь

Сообщений: 3280
Регистрация: 24.12.2012

{quote}{login=ZyXp10!t}{date=02.12.2008 10:49}{thema=Пароль на открытие файлов средствами VBA}{post}Ситуация: есть папка, куда выгружаются отчеты в формате xls. В целях разграничения доступа принято решение ставить пароль на документе. Из-за слабой защищенности пароля книги/листа, нужно сделать пароль на открытие.  
Вопрос: Возможно ли средствами VBA сделать пароль на открытие каждого найденного xls файла в папке?{/post}{/quote}  
Я сделал так, точнее мне помогли форумчане за что им поклон … книга вызывает большую форму куда и вводится пароль войти невозможно испытано на себе…  
В модуль эта книга..  
Private Sub Workbook_Open()  
UserForm5.Show  
End Sub  
Код формы..  
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)  
If KeyCode = 13 Then  
   If TextBox1.Text = «24» Then  
      ThisWorkbook.IsAddin = False  
      Unload UserForm5  
   Else  
       TextBox1.Value = «»  
   End If  
End If  

  End Sub  
Пароль 24

 

ZyXp10it

Пользователь

Сообщений: 50
Регистрация: 01.01.1970

Спасибо, но вариант с макросом не подходит, т.к. легко обходится (достаточно удалить пароль миф и потом изменить пароль)  
Мне необходимо именно поставить пароль на открытие, чтобы взломать можно было только брутом…

 

ZyXp10it

Пользователь

Сообщений: 50
Регистрация: 01.01.1970

миф = vba (пунто заменил, собака :)  

  Вопрос остается в силе…

 

А чем вас не устраивает встроенная установка пароля на открытие файла? Она-то как раз только брутом и ломается… Пароль установите на все книги вручную или перебирая макросом.

 

Микки

Пользователь

Сообщений: 3280
Регистрация: 24.12.2012

{quote}{login=ZyXp10!t}{date=02.12.2008 11:16}{thema=}{post}Спасибо, но вариант с макросом не подходит, т.к. легко обходится (достаточно удалить пароль миф и потом изменить пароль)  
Мне необходимо именно поставить пароль на открытие, чтобы взломать можно было только брутом…{/post}{/quote}  
Ну если пользователи владеют МИФ -ами  то да, но вы сами попробуйте работает эффективно…

 

ZyXp10it

Пользователь

Сообщений: 50
Регистрация: 01.01.1970

{quote}{login=Влад}{date=02.12.2008 11:41}{thema=}{post}А чем вас не устраивает встроенная установка пароля на открытие файла? Она-то как раз только брутом и ломается… Пароль установите на все книги вручную или перебирая макросом.{/post}{/quote}  
Вот как раз это и нужно :)  
Перебором найти все xls файлы в папке и установить на каждый из наих пароль на открытие…  
Подскажите пжл код макроса…

 

ZyXp10it

Пользователь

Сообщений: 50
Регистрация: 01.01.1970

{quote}{login=Микки}{date=02.12.2008 11:43}{thema=Re: }{post}{quote}{login=ZyXp10!t}{date=02.12.2008 11:16}{thema=}{post}Спасибо, но вариант с макросом не подходит, т.к. легко обходится (достаточно удалить пароль миф и потом изменить пароль)  
Мне необходимо именно поставить пароль на открытие, чтобы взломать можно было только брутом…{/post}{/quote}  
Ну если пользователи владеют МИФ -ами  то да, но вы сами попробуйте работает эффективно…{/post}{/quote}  
Даже если не владеют, найдутся чудаки на букву м, которые «слямзят» файл и откроют, а там конфиденциальная инфа, поэтому вопрос именно в установке пароля на открытие…

 

Макрос на перебор файлов легко найдете в Поиске. Смысл таков — последовательно открываете каждую найденную книгу, используете свойство .Password = «нужный_пароль», закрываете книгу с сохранением изменений .Close (True).

 

ytk5kyky

Пользователь

Сообщений: 2410
Регистрация: 01.01.1970

Про перебор всех файлов в папке говорилось неоднократно.  
А вот что выдал макрорекордер при установке пароля на открытие:  
ActiveWorkbook.Password = «Password»

 

ZyXp10it

Пользователь

Сообщений: 50
Регистрация: 01.01.1970

{quote}{login=Влад}{date=02.12.2008 11:57}{thema=}{post}Макрос на перебор файлов легко найдете в Поиске. Смысл таков — последовательно открываете каждую найденную книгу, используете свойство .Password = «нужный_пароль», закрываете книгу с сохранением изменений .Close (True).{/post}{/quote}  
Свойство .Password насколько мне известно относится только к защите книги/листов паролем, а каков синтаксис установки пароля на открытие???

 

ytk5kyky

Пользователь

Сообщений: 2410
Регистрация: 01.01.1970

{quote}{login=ZyXp10!t}{date=02.12.2008 12:00}{thema=Re: }{post}{quote}{login=Влад}{date=02.12.2008 11:57}{thema=}{post}Макрос на перебор файлов легко найдете в Поиске. Смысл таков — последовательно открываете каждую найденную книгу, используете свойство .Password = «нужный_пароль», закрываете книгу с сохранением изменений .Close (True).{/post}{/quote}  
Свойство .Password насколько мне известно относится только к защите книги/листов паролем, а каков синтаксис установки пароля на открытие???{/post}{/quote}Пользуйтесь макрорекордером!

 

ZyXp10it

Пользователь

Сообщений: 50
Регистрация: 01.01.1970

{quote}{login=Лузер™}{date=02.12.2008 11:59}{thema=}{post}Про перебор всех файлов в папке говорилось неоднократно.  
А вот что выдал макрорекордер при установке пароля на открытие:  
ActiveWorkbook.Password = «Password»{/post}{/quote}  
Для текущего документа такое работает, но как реализовать установку пароля именно в найденных документах???

 

Это и есть пароль на открытие — вы сами попробуйте.

 

{quote}{login=ZyXp10!t}{date=02.12.2008 12:02}{thema=Re: }{post}{quote}{login=Лузер™}{date=02.12.2008 11:59}{thema=}{post}Про перебор всех файлов в папке говорилось неоднократно.  
А вот что выдал макрорекордер при установке пароля на открытие:  
ActiveWorkbook.Password = «Password»{/post}{/quote}  
Для текущего документа такое работает, но как реализовать установку пароля именно в найденных документах???{/post}{/quote}  
Очевидно, к каждой найденой книге применить свойство .Password (НЕ к ActiveWorkbook) — я вам уже вроде объяснил постом выше.

 

ZyXp10it

Пользователь

Сообщений: 50
Регистрация: 01.01.1970

{quote}{login=Влад}{date=02.12.2008 11:57}{thema=}{post}Макрос на перебор файлов легко найдете в Поиске. Смысл таков — последовательно открываете каждую найденную книгу, используете свойство .Password = «нужный_пароль», закрываете книгу с сохранением изменений .Close (True).{/post}{/quote}  
Спасибо за «смысл», но я в ВБА новичок и слабо понимаю о чем идет речь. Если возможно, распишите подробнее…

 

ytk5kyky

Пользователь

Сообщений: 2410
Регистрация: 01.01.1970

Хотя и видно, что Вы читаете все ответы, но видно в суть не вдаетесь.  
Вам Влад описал процесс:  
поочередно открываете книги.  
после открытия книга становится ActiveWorkbook  
закрываете и сохраняете книгу ActiveWorkbook.Close (True)

 

ZyXp10it

Пользователь

Сообщений: 50
Регистрация: 01.01.1970

{quote}{login=Лузер™}{date=02.12.2008 12:06}{thema=}{post}Хотя и видно, что Вы читаете все ответы, но видно в суть не вдаетесь.  
Вам Влад описал процесс:  
поочередно открываете книги.  
после открытия книга становится ActiveWorkbook  
закрываете и сохраняете книгу ActiveWorkbook.Close (True){/post}{/quote}  
У меня инет «медленный», вы пишите, я отвечаю на пост, а в это время еще появляется пост и т.д. и  т.п :)))  
Повторюсь, я в ВБА новичок, распишите, если возможно, «смысл» подробнее, а лучше конечно, приведите код (на коде учиться всегда легче :)))

 

ZyXp10it

Пользователь

Сообщений: 50
Регистрация: 01.01.1970

Реализовать «смысл» при текущем уровне знаний vba я не в илах, поэтому прошу  
дать конкретный код, который бы перебором находил все xls файлы и ставил в них пароль на открытие…

 

посмотрите пример (на всякий случай пароль «123»)

 

{quote}{login=Артем}{date=02.12.2008 01:38}{thema=}{post}посмотрите пример (на всякий случай пароль «123»){/post}{/quote}  
Вываливается здесь: Workbooks.Open Filename:=iFile.Name (Runtime-Error 1004) (пишет, что не может найти файл)  
P.S. Спасибо за пример

 

это в моем же примере или вы куда-то файлы скопировали?

 

{quote}{login=Артем}{date=02.12.2008 02:09}{thema=}{post}это в моем же примере или вы куда-то файлы скопировали?{/post}{/quote}  
В вашем, я просто «копии» переименовал в 01, 02 … 04.xls и все — больше ничего не делал

 

странно, у меня все работает…  
попробуйте вставиь перед  
Workbooks.Open Filename:=iFile.Name    
строчку    
cells(1,1) = iFile.Name    
после запуска в ячейке A1 должен появиться адрес, напишите, что получилось

 

{quote}{login=Артем}{date=02.12.2008 02:28}{thema=}{post}странно, у меня все работает…  
попробуйте вставиь перед  
Workbooks.Open Filename:=iFile.Name    
строчку    
cells(1,1) = iFile.Name    
после запуска в ячейке A1 должен появиться адрес, напишите, что получилось{/post}{/quote}  
Копия (2) макро.xls (для ваших файлов), т.е. первый найденный файл xls в папке

 

кажись дошло….  
замените проблемную строку на  
Workbooks.Open Filename:=iPath & Application.PathSeparator & iFile.Name  
хотя у меня и первоначальный вариант работает(пожимает плечами)…

 

{quote}{login=Артем}{date=02.12.2008 03:09}{thema=}{post}кажись дошло….  
замените проблемную строку на  
Workbooks.Open Filename:=iPath & Application.PathSeparator & iFile.Name  
хотя у меня и первоначальный вариант работает(пожимает плечами)…{/post}{/quote}  
ВСЕ ПРЕКРАСНО РАБОТАЕТ! СПАСИБО ОГРОМНОЕ!  
Буду учить VBA… Кстати не посоветуете хорошие книги по VBA в бесплатном доступе

 

пожалуйста  
хорошая эл.библиотека

http://www.infanata.org/:

регистрируетесь и поиск по ключевому слову VBA (Уокенбах точно есть, на первое время вам хватит)

 

{quote}{login=Артем}{date=02.12.2008 03:21}{thema=}{post}пожалуйста  
хорошая эл.библиотека

http://www.infanata.org/:

регистрируетесь и поиск по ключевому слову VBA (Уокенбах точно есть, на первое время вам хватит){/post}{/quote}  
Спасибо, кстати оффтопный прикол: оказывается я уже был зареган на инфанате, а я и не знал :)))

 

Лиска

Гость

#30

12.08.2010 00:20:41

{quote}{login=ZyXp10!t}{date=02.12.2008 11:16}{thema=}{post}Спасибо, но вариант с макросом не подходит, т.к. легко обходится (достаточно удалить пароль миф и потом изменить пароль)  
Мне необходимо именно поставить пароль на открытие, чтобы взломать можно было только брутом…{/post}{/quote}  
не подскажите как это делается?

0 / 0 / 1

Регистрация: 19.01.2016

Сообщений: 149

1

Открытие запароленой книги программно

15.02.2019, 17:34. Показов 4363. Ответов 4


Студворк — интернет-сервис помощи студентам

Добрый день. Нашел как запаролить книгу excel стандартной функцией.
Теперь возникает вопрос — можно ли программно (например макросом из другой книги) открыть запароленую книгу? Я имею в виду не взламывать а просто открыть, зная, конечно, пароль.
Запись макроса макроредактором не помогла.



0



4131 / 2235 / 940

Регистрация: 01.12.2010

Сообщений: 4,624

15.02.2019, 17:46

2

F1 — и далее

Opens a workbook.
Syntax

expression.Open(FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad)



0



saray

3 / 2 / 1

Регистрация: 05.02.2019

Сообщений: 27

15.02.2019, 17:47

3

Visual Basic
1
2
3
Sub Open_file()
    Workbooks.Open Filename:= "Полный пусть к файлу с расширением", Password:="Указываем пароль"
End Sub



0



0 / 0 / 1

Регистрация: 19.01.2016

Сообщений: 149

15.02.2019, 17:52

 [ТС]

4

Большое спасибо!



0



653 / 246 / 88

Регистрация: 28.10.2015

Сообщений: 520

15.02.2019, 17:52

5

Я однажды создал Вордовский файл для хранения паролей. Решил запаролить сам файл. А потом забыл пароль!

Пришлось создавать в той же папке второй вордовский файл, прописывать в нём список всех комбинаций пароля (все варианты паролей, которые я придумывал, плюс вариации) и писать макрос, который перебирая все мои пароли, пытался открыть файл.
По серьёзному, брутфорс давно канул в прошлое, но для домашнего использования можно и примитивный брутер с атакой по словарю содеять!



0



Макрос предназначен для замены паролей на открытие, для большого количества файлов Excel.

В качестве исходных данных, задаётся старый и новый пароли.

Если поле «старый пароль» — пустое, подразумевается, что у файлов нет пароля.
Если поле «новый пароль» — пустое, подразумевается, что с файлов снимается пароль.

Нажимаем кнопку, — появляется диалоговое окно выбора папки, — после чего макрос в цикле открывает всё файлы,
и пересохраняет их с новым паролем.

Возможно, у некоторых файлов не получится изменить пароль
(например, у тех, где пароль на открытие отличается от заданного в поле «Старый пароль»)
Список таких файлов программа выводит в таблицу, в виде гиперссылок.

ВНИМАНИЕ: Это очень опасный макрос, — если вы случайно забудете, какой пароль вы установили на файлы,
— все обработанные макросом файлы Excel станут недоступны!

Так что, пользуйтесь макросом на свой страх и риск.

Напоминаю: снять (сбросить) пароль н а открытие файла невозможно!
(только полным перебором, — а это очень долго)

Часть кода макроса: (см. прикреплённый файл)

Sub ChangePasswords()
    On Error Resume Next
    PassOld$ = shs.Range("PassOld").Text
    PassNew$ = shs.Range("PassNew").Text
 
    folder$ = GetFolder(777, True)        ' запрашиваем имя папки
    If folder$ = "" Then Exit Sub        ' выход, если пользователь отказался от выбора папки

    Dim coll As Collection
    ' считываем в колекцию coll имена файлов XLS*
    Set coll = FilenamesCollection(folder$, "*.xls*")
    If coll.Count = 0 Then
        MsgBox "В выбранной папке не найдено ни одного файла Excel", vbExclamation
        Exit Sub
    End If
 
    Dim WB As Workbook, nOK&, nErr&
    ' очистка таблицы ошибок
    Intersect(shs.UsedRange, shs.Range("b11:b" & shs.Rows.Count)).ClearContents
    Application.ScreenUpdating = False        ' отключаем обновление экрана

    For Each Filename In coll        ' перебираем найденные в папке файлы
        Err.Clear: Set WB = Nothing
        Set WB = Workbooks.Open(Filename, , , , PassOld$)        ' пробуем открыть очередной файл
        If Not WB Is Nothing Then        ' если файл открылся
            WB.Password = PassNew$        ' ставим новый пароль
            WB.Close True        ' закрываем файл с сохранением изменений
            nOK& = nOK& - (Err = 0)        ' считаем количество успешно сохранённых файлов

        Else        ' файл не открылся - выводим в список ошибок
            nErr& = nErr& + 1
            With shs.Range("b" & 10 + nErr&)
                .Value = Filename
                .Hyperlinks.Add .Resize(, 1), Filename, "", "Попробовать открыть файл вручную"
            End With
        End If
        DoEvents
    Next
 
    Application.ScreenUpdating = True
    msg$ = "Найдено файлов в папке: " & coll.Count & vbNewLine & _
           "Удалось заменить пароли на файлах: " & nOK&
    MsgBox msg, vbInformation, "Готово"
End Sub

Вложение

Размер

Загрузки

Последняя загрузка

SetPasswords.xlsb

27.69 КБ

56

52 недели 9 часов назад

Время на прочтение
5 мин

Количество просмотров 25K

Всем привет! Я обычный пользователь MS Excel. Не являющийся профессиональным программистом, но накопивший достаточно опыта, для установки и обхода защиты проектов VBA.

Дисклеймер:

В данной статье рассмотрены виды защиты проектов VBA, от несанкционированного доступа. Их сильные и слабые стороны – ранжирование.

Цель статьи показать слабые и сильные стороны каждого вида защиты проекта VBA в MS Office.

Демонстрация разработанных инструментов, в надстройке Macro Tools VBA, для снятия и установки той или иной защиты. 

Все инструменты реализованы стандартными средствами VBA, без использования дополнительных библиотек. 

Главная панель Надстройки Macro Tools VBA

Первый вид защиты — Обычный пароль

Время на снятие: мгновенно

Недостаток: быстрый доступ к запароленному модулю VBA

Стандартный инструмент (В среде VBE: панель Tools -> VBAProject Properties -> Protection). 

Самая легко снимающаяся защита. В интернете легко находится код, для снятия данной защиты. 

Данную защиту можно снять следующим инструментом:

Второй вид защиты — Project is Unviewable

Время на снятие:  от 10 до 15 мин (в ручную)

Недостаток: доступ к исходному коду модуля VBA

Один из самых распространённых видов защит.  Встречается в 95% файлах с защитой модуля VBA. При попытке открыть проект, открывается диалоговое окно, с  сообщением:  Project is Unviewable.


Большинство пользователей Excel, не могут снять данную защиту, так как она имеет множество вариации и нюансов, для ее снятие нужно иметь представление о внутренней структуре файла Excel.

Основан, данный вид защиты, на изменение ключей:

CMG=«4A488FCC54D054D054D054D0»

DPB=«0B09CE0F8E108E108E»

GC=«CCCE09520B120C120CED»

в файле vbaProject.bin

Кратко, как создается данная защита

Для создания данной защиты нужно, разархивировать файл Excel. Перейти в архиве в папку xl, открыть файл vbaProject.bin,  в конце файла находятся наши ключи, редактируем значения ключей на пусто, сохраняем файл. Переводим наш архив, обратно в файл Excel. Готово! 

Это самый простой вариант данной защиты, но существует множество модификаций.

Алгоритм снятия защиты Project is Unviewable.

1)  Разархивируем подопытный файл, переходим в файл  …xl_relsworkbook.xml.rels

2)      В файле workbook.xml.rels  ищем строку, содержащую слово  vbaProject, обычно имеет следующий вид:  />. В этой строке нас интересует ключ Target,иего значение. Значение является название файла, в котором находится проект VBA. Иногда, защищающий меняет значения ключа на printerSettings.bin.Получается маскировка файла с проектом VBA  под другой файл.

3)      Открываем на редактирование файл, указанный в  ключе Target, ищем в файле ключи  CMG, DPB, GC. И меняем в их названиях любую букву на любую другую, например: CMC, DPC, CC. При поиске нужно быть аккуратным, так как защищающий может поместить  в проект форму,  подписью повторяющую один из ключей, например такую: DPB=«0B09CE0F8E108E108E». При ее изменении проект VBA, будет удален из книги Excel.  Сохраняем и закрываем файл.

4)      Переводим архив обратно в файл Excel.

5)      Запускаем приложение Excel, выполняем следующее: в Центре управления безопасностью -> Параметры макросов  -> Отключить все макросы без уведомления. Перезапускаем Excel. Данная операция нужна, для блокировки защиты, которую иногда ставят авторы макросов. Данная защита реализована следующим образом. В модуле VBA «ЭтаКнига», создается процедуры, реагирующие на события открытия книги или закрытия книги. Эти события обычно проверяют, наличие пароля на проект VBA, запрет сохранения и прочее.

6)      Открываем файл. Если все правильно сделано то, Excel, будет ругаться на не правильные ключи, которые мы отредактировали, в пункте 3. Жмем, да, пока данные сообщения не закончатся и диалоговое окно закроется. 

      Если данное сообщение не появляется то, вы отредактировали не файл который содержит проект VBA.

7)      Открываем проект VBA. После всего, проект VBA должен быть доступен.

8)       Но иногда защита не снимается, тогда нужно сохранить файл, проверить, что он действительно сохранился! И проделать повторно операции с 1 по 7. Обычно так происходит когда в файле workbook.xml.rels в ключе Target  установлено printerSettings.bin.При сохранение,  Excel  исправляет это на значение на vbaProject.bin

Данную защиту можно установить и снять следующим инструментом:

Третий вид защиты — Hidden  Module, скрытые модули VBA

Время на снятие:  от 15 до 20 мин (нужен редактор OLE — объектов, Structured Storage Viewer, например.

Недостаток: доступ к коду модуля VBA

Менее распространенный вид  защиты обычно встречается в комбинации с защитой Project is Unviewable. При установке данной защиты модуль VBA не отображается в проекте книги Excel. О его существовании можно узнать, проанализировав код VBA (что требует время!) или открыть файл Excel в программе  OpenOffice  или  LibreOffice (так же можно смотреть код при защите Project is Unviewable, но данный способ не дает возможность получить рабочий файл, без пароля). 

Просмотр кода VBA в  LibreOffice

Кратко, как создается данная защита

Для создания данной защиты нужно отредактировать файл  с проектом VBA — vbaProject.bin  или printerSettings.bin,в зависимости от настроек в файле …xl_relsworkbook.xml.rels. В конце файла удаляются строки вида: Module1=32, 32, 635, 330, Z.  С нужными названиями модулей.

Для снятия данной защиты нужно в файле vbaProject.bin — восстановить удаленные записи модулей.

Данную защиту можно установить следующим инструментом.

Четвертый вид защиты — Обфускация кода

Время на снятие:  неизвестно, зависит от объема кода и пере использования частей кода

Обфусцированный код VBA

Недостаток:  необходимость тестирование файла после обфускации, на работоспособность

Крайне редкий вид защиты, основанный на изменении исходного кода VBA, в не удобочитаемый вид для человека. Удаляются все комментарии, форматирование кода, переименовываются названия всех переменных,  процедур, функций, модулей и прочего. Злоумышленнику никогда не удастся восстановить первоначальный вид кода, и потребует достаточно много времени для, его восстановления в удобно читаемый вид для человека.  

Для де-обфускации кода нужно иметь  время, специализированное ПО.

Данную защиту можно установить следующим инструментом.

Пятый вид защиты — Перенос кода в dll

Время на снятие:  неизвестно, зависит от языка программирования и квалификации

Недостаток:  необходимости в дополнительном  файле dll

Один из самых редких видов защиты. Основная идея перенос основного кода в отдельную библиотеку dll, написанную на любом другом языке программирования. Не распространённость данный вид защиты получил по следующей причине,  необходимости за файлом Excel, «таскать» дополнительный файл, dll.

Для получения доступа к коду dll, нужно обладать специальными знаниями.

Заключение

В заключении хочу выделить бесполезность защит:  Project is Unviewable и Hidden  Module которые, по существу ни отчего не защищают. Позволяют просматривать код VBA, без изменения исходного  файла, в таких программах как OpenOffice  или  LibreOffice. Так и снимаются без особых проблем.

@amitmahapatra 

VBA and macro scripting

You cannot create macros with VBA in Excel for the web, but you can open and edit VBA-enabled spreadsheets without removing (or corrupting) the VBA contained in the file. Learn more about getting started with macros.

You could use this code with other versions.
Only if it is your own file, otherwise you could be liable to prosecution.

Hope I was able to help you.

Nikolino

I know I don’t know anything (Socrates)

* Kindly Mark and Vote this reply if it helps please, as it will be beneficial to more Community members reading here

Like this post? Please share to your friends:
  • Пароль на колонку excel
  • Пароль на книгу excel 2016
  • Пароль на книгу excel 2010
  • Пароль на изменение ячеек excel
  • Пароль на доступ excel 2007