Ограничения на внесение изменений в файлы Word и Excel. Как ограничить лист в эксель
Как ограничить полезную площадь в листах таблиц Excel — Трюки и приемы в Microsoft Excel
Вы никогда не хотели оставить некоторые ячейки доступными для изменения, тогда как весь рабочий лист будет защищен? Например, настроить лист так, чтобы можно было активизировать или изменять только ячейки из определенного диапазона. Решить данную задачу можно двумя способами: с помощью свойства ScrollArea и с использованием защиты листа.
Установка свойства ScrollArea
Свойство ScrollArea определяет видимый диапазон рабочего листа. Чтобы ограничить полезную площадь листа до определенного диапазона, выполните следующие действия.
- Откройте вкладку Разработчик. По умолчанию она не отображается, поэтому выберите команду Файл ► Параметры, затем в открывшемся диалоговом окне Параметры Excel перейдите к разделу Настройка ленты и установите флажок Разработчик в списке справа.
- Выполните команду Разработчик ► Элементы управления ► Свойства для отображения окна Properties (рис. 24.1).
- В поле ScrollArea окна Properties введите диапазон адресов и нажмите Enter. Вы не можете указать диапазон с помощью мыши — придется ввести его адресвручную.
Рис. 24.1. Используйте окно Properties, чтобы установить область прокрутки для листа
После выполнения этих действий вы не сможете активизировать какую бы то ни было ячейку за пределами указанного диапазона. Кроме того, некоторые команды больше не будут работать. Например, вы не сможете выбрать строки и столбцы целиком. Заметьте, что область прокрутки ограничивается одним непрерывным диапазоном ячеек.
Главный недостаток данного способа заключается в том, что свойство ScrollArea применяется на определенное время. Другими словами, после того как вы сохраните файл и закроете его, свойство ScrollArea перестанет действовать, и когда вы снова откроете файл, то сможете выбирать любую нужную вам ячейку. Одно из решений данной проблемы заключается в написании простого макроса VBA, который выполняется тогда, когда книга открыта. Для добавления макроса такого типа выполните следующие действия.
- Сверните окно книги нажатием Ctrl+F5.
- Щелкните правой кнопкой мыши на строке заголовка книги и в контекстном меню выберите команду Исходный текст. Это действие отобразит модуль кода Эта Книга для книги.
- Введите следующий код VBA в модуль кода Эта Книга (корректируя имя листа и диапазон адресов):
1 2 3 Private Sub Workbook_Open() Worksheets("Лист1").ScrollArea = "C6:F13" End Sub Private Sub Workbook_Open() Worksheets("Лист1").ScrollArea = "C6:F13" End Sub
- Нажмите Alt+F11, чтобы вернуться в Excel.
- Сохраните книгу, закройте ее и откройте снова.
Если книга имеет расширение XLSX, необходимо сохранить ее как поддерживающую макросы (с расширением XLSM).
При открытии книги процедура Workbook_Open выполняется автоматически и свойство ScrollArea действует постоянно. Но, применяя данный метод, вы не сможете полностью ограничить доступ пользователей к частям книги. Так, продвинутый пользователь может открыть окно Properties и удалить содержимое поля ScrollArea или отключить макросы в открытой книге. Кроме того, чтобы отключить выполнение макроса Workbook_Open, достаточно нажать Shift при открытии файла.
Использование защиты листа
Второй метод ограничения полезной площади листа опирается на разблокирование ячеек и защиту книги.
- Выделите все ячейки, которые должны остаться незаблокированными. Это могут быть отдельные ячейки или любое количество диапазонов.
- Нажмите Ctrl+1. В появившемся диалоговом окне Формат ячеек перейдите на вкладку Защита и снимите флажок Защищаемая ячейка.
- Затем выберите команду Рецензирование ► Изменения ► Защитить лист и в открывшемся диалоговом окне Защита листа снимите флажок Выделение заблокированных ячеек (рис. 24.2).
- Если требуется, укажите пароль, который нужно ввести, чтобы снять защиту с рабочего листа, и нажмите ОК.
Рис. 24.2. Используйте диалоговое окно Защита листа, чтобы пользователь не мог выделять заблокированные ячейки
После выполнения этих шагов только разблокированные ячейки (выделенные на шаге 1) будут доступны пользователям.
Пароли рабочего листа вовсе не гарантируют полную безопасность. На самом деле взлом таких паролей — достаточно обычное дело. Таким образом, функция защиты листа используется больше для удобства, чем для обеспечения безопасности.
excelexpert.ru
Трюк №8. Ограничение диапазона прокрутки листа Excel — MS Excel
Если вы постоянно перемещаетесь по своей электронной таблице или не хотите, чтобы читатели могли просматривать определенные данные, удобно ограничить видимую область электронной таблицы только необходимымиданными.Все листы Excel, созданные в Excel 97-2003, имеют 256 столбцов (от А до IV) и 65 536 строк. Чаще всего на листе используется лишь небольшая доля доступных ячеек. Немного усилий — и вы сможете ограничить область прокрутки листа только ячейками, содержащими нужные данные. Затем можно поместить данные, которые пользователь видеть не должен, в ячейки за пределами области прокрутки. Это также упростит переход по ячейкам на листе, так как часто возникает ситуация, когда пользователь неожиданно оказывается на 50 000 строке и начинает кричать, что на листе совершенно невозможно найти необходимые данные.
Самый простой способ установить границы — просто спрятать все неиспользуемые столбцы и строки. На своем листе найдите последнюю строку, содержащую данные, и целиком выделите строку под ней, щелкнув кнопку строки. Удерживайте клавиши Ctrl и Shift и нажимайте стрелку вниз, чтобы выделить все строки ниже. Чтобы спрятать их, выберите команду Формат → Строка → Скрыть (Format → Row → Hide). To же самое сделайте и с неиспользуемыми столбцами: найдите последний столбец с данными, полностью выделите столбец справа от него, удерживайте клавиши Ctrl и Shift, нажимая стрелку вправо, а затем выберите команду Формат → Столбец → Скрыть (Format → Column → Hide). Если все произошло как надо, используемые ячейки будут окружены серой областью, за пределы которой пе.рейти невозможно.
Второй способ определить границы — указать допустимый диапазон в окне Properties листа. Правой кнопкой мыши щелкните ярлычок листа в левом нижнем углу экрана и в контекстном меню выберите пункт View Code (Исходный текст). В Windows выберите команду View → Project Explorer (Ctrl+R), а в Mac OS X нажмите сочетание клавиш Apple+R, чтобы открыть окно Project Explorer. Если окно Properties не открыто, нажмите клавишу F4. Выберите нужный лист, и перейдите к свойству ScrollArea в окне Properties.
Теперь в Project Explorer выберите лист, область прокрутки которого хотите ограничить, а затем в окне Properties (рис. 1.12) перейдите к свойству ScrollArea. В соответствующем поле значений справа введите желаемые границы листа, например, $A$1:$G$50.
Рис. 1.12. Окно Properties в Project Explorer
Вы не сможете прокручивать лист за пределы указанной области. К сожалению, после закрытия Excel не сохранит этот параметр. Это означает, что для того, чтобы автоматически выбирать желаемый диапазон прокрутки, необходимо создать простой макрос, поместив немного кода в событие worksheet_Activate.
Правой кнопкой мыши щелкните ярлычок с именем того листа, где нужно ограничить диапазон прокрутки, и в контекстном меню выберите команду Исходный текст (View Code), затем введите код из листинга 1.13.
1 2 3 4 | // Листинг 1.13 Private Sub Worksheet_Activate () Me. Scroll Area = "A1:G50" End Sub |
// Листинг 1.13 Private Sub Worksheet_Activate () Me. Scroll Area = "A1:G50" End Sub
Как обычно, нажмите сочетание клавиш Alt/Apple+Q, чтобы вернуться в Excel и сохранить книгу. Хотя вы не сможете увидеть результат в виде серой области в первом способе, вы все же не сможете прокрутить лист или выбрать что-либо за пределами заданной области.
Любой макрос, выбирающий диапазон за пределами этой области прокрутки (включая выбор целых строк и столбцов), сделать это более не сможет. Это относится, в частности, к записанным макросам, так как в них зачастую применяется выделение.
Если макрос использует диапазон за пределами области прокрутки, можно легко изменить его, чтобы он не был ограничен в своей работе каким-то диапазоном ячеек. Выберите команду Сервис → Макрос → Макросы (Tools → Macro → Macros) или сочетание клавиш Alt+F8, выберите имя макроса, выделите его и щелкните кнопку Изменить (Edit). Вставьте следующую строку перед первой строкой существующего кода:ActiveSheet.Scroll Area = "" На самую последнюю строку кода поместите следующее:ActiveSheet.Scroll Area = "$A$1:$G$50" Теперь код должен выглядеть приблизительно так, как показано в листинге 1.14.1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | // Листинг 1.14 Sub МуМасrо() ' ' 'макрос МуМасго 'макрос записан 19/9/2011 ву Excel2010.ru ' ' ActiveSheet.Scroll Area = "" Range("Z100").Select Selection.Font.Bold = True ActiveSheet.Scroll Area - "$A$1:$G$50" Sheets('Daily Budget").Select ActiveSheet.Scroll Area = "" Range ("T500").Select Selection.Font.Bold = False ActiveSheet.Scroll Area = "$A$1:$H$25" End Sub |
// Листинг 1.14 Sub МуМасrо() ' ' 'макрос МуМасго 'макрос записан 19/9/2011 ву Excel2010.ru ' ' ActiveSheet.Scroll Area = "" Range("Z100").Select Selection.Font.Bold = True ActiveSheet.Scroll Area - "$A$1:$G$50" Sheets('Daily Budget").Select ActiveSheet.Scroll Area = "" Range ("T500").Select Selection.Font.Bold = False ActiveSheet.Scroll Area = "$A$1:$H$25" End Sub
Наш записанный макрос выбирает ячейку Z100 и форматирует ее, делая шрифт жирным. Затем он выбирает лист с именем Daily Budget, выбирает на нем ячейку Т500 и отменяет жирный шрифт. Мы добавили строку ActiveSheet.ScrollArea = «», поэтому на листе можно выбрать любую ячейку, а затем восстановить желаемый ограниченный диапазон прокрутки. Выбирая другой лист (Daily Budget), мы снова позволяем коду выбирать любую ячейку на этом листе, а затем восстанавливаем ограниченный диапазон.
Третий метод, наиболее гибкий, автоматически ограничивает область прокрутки используемым диапазоном ячеек на листе, для которого вы создаете следующий код. Чтобы применить этот способ, правой кнопкой мыши щелкните ярлычок с именем нужного листа, в контекстном меню выберите пункт Исходный текст (View Code) и введите код, приведенный в листинге 1.15.
1 2 3 4 | // Листинг 1.15 Private Sub Worksheet_Activate() Me.ScrollArea = Range(Me.UsedRange, Me.UsedRange(2.2)).Address End Sub |
// Листинг 1.15 Private Sub Worksheet_Activate() Me.ScrollArea = Range(Me.UsedRange, Me.UsedRange(2.2)).Address End Sub
Теперь нажмите сочетание клавиш Alt/Apple+Q или щелкните крестик в правом верхнем углу окна, чтобы вернуться в Excel и сохранить книгу.
Этот макрос будет выполняться автоматически каждый раз, когда вы будете активировать лист, где он хранится. Однако некоторые проблемы могут возникнуть, если понадобится ввести данные за пределами текущего используемого диапазона. Чтобы избежать этого, примените стандартный макрос, который восстановит область прокрутки, равную полному листу. Выберите команду Сервис → Макрос → Редактор Visual Basic (Tools → Macro → Visual Basic Editor), затем выберите команду Insert → Module и введите код из листинга 1.16.
1 2 3 4 | // Листинг 1.16 Sub ResetScrollArea() ActiveSheet.ScrollArea = "" End Sub |
// Листинг 1.16 Sub ResetScrollArea() ActiveSheet.ScrollArea = "" End Sub
Теперь нажмите сочетание клавиш Alt/Apple+Q или щелкните крестик в правом верхнем углу окна, чтобы вернуться в Excel и сохранить книгу. Если хотите, можно упростить способ выполнения макроса, назначив ему сочетание клавиш. Выберите команду Сервис → Макрос → Макросы (Tools → Macro > Macros) или нажмите сочетание клавиш (Alt/Option+F8). Выберите ResetScrollArea (это имя вашего макроса), щелкните кнопку Параметры (Options) и выберите сочетание клавиш.
Каждый раз, когда понадобится добавить данные за пределами установленных границ листа, выполняйте макрос ResetScrollArea для переопределения границ. После выполнения макроса внесите изменения, которые было невозможно сделать с ограниченным диапазоном прокрутки. Закончив, активируйте любой другой лист, а затем активируйте только что измененный лист. Это действие запустит код, ограничивающий диапазон прокрутки желаемой областью.
Изменяем внешний вид листа MS EXCEL. Примеры и методы
У листа есть ряд параметров, которые влияют на его вид: отображение сетки, заголовков столбцов и пр.
Cкроем на листе неиспользуемые строки и столбцы (оставим только столбцы A:E и строки 1:20).
- выделите весь столбец F, нажав на его заголовок;
- нажмите сочетание клавиш CTRL+SHIFT+Стрелка вправо – будут выделены все столбцы от F до конца листа;
- наведите курсор на заголовок любого выделенного столбца и вызовите правой клавишей мыши контекстное меню,
- выберите пункт меню Скрыть;
Аналогично можно скрыть строки, например, с 20-й.
Пойдем дальше и настроим вид листа через меню . Можно скрыть сетку, Строку формул и заголовки строк и столбцов. В результате получим:
Так же можно скрыть полосы прокрутки и ярлычки листов ().
Можно ограничить выделение ячеек и прокрутку листа определенным диапазоном. Для этого в меню нажмите кнопку Свойства. Появится окно свойств листа.
В параметре ScrollArea введите диапазон ячеек, который разрешен для выделения (диапазон ячеек нужно указать в формате абсолютной адресации, например, $A$1:$C$10). Только в пределах этого диапазона будет разрешена прокрутка листа и выделение ячеек. К сожалению, при повторном открытии книги этот параметр очищается.
СОВЕТ:Чтобы отобразить вкладку Разработчик зайдите в меню .
excel2.ru
excel - Как ограничить Ctrl + End в листе Excel
Конкретный ответ на ваш вопрос, конечно, заключается в том, что ловушка использования клавиши Ctrl-END.
Вы можете сделать это легко, указав триггеры событий на свой лист:
Private Sub Worksheet_Activate() Application.OnKey "^{END}", "SuppressMe" End Sub Private Sub Worksheet_Deactivate() Application.OnKey "^{END}", "" End Subи другой модуль, содержащий
Sub SuppressMe() ' you can be very creative here about line 100 or not 100 MsgBox "Co-Cooooo :-P" End SubЕще один милый способ удовлетворить описанные вами требования и устранить необходимость просмотра и подавления ключей - это ограничить навигацию до строки 100. Теперь Ctrl-END поместит пользователя в самый правый столбец строки 100, а Ctrl-DOWN будет закрыт также. На самом деле пользователь просто не может пройти мимо строки 100
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Row > 100 Then Me.Cells(100, Target.Column).Select End If End Subно ждать !!! действительно ли нет?... конечно, пользователь все еще может ПРОКРУТАТЬ прошлую строку 100 и обнаруживать ваше маленькое пасхальное яйцо серии 500. Поэтому я согласен на 100% с более ранними предложениями о другой стратегии, потому что
- пользователь, узнающий, что именно прямая 500 - 503 скрыта, может стать чрезвычайно любопытным, почему
- Ctrl-END - это не единственный способ, которым пользователь может перемещаться по следующей строке 100 - вам нужно будет подавить END-DOWN (комбинация из 2-х клавиш... вам нужно буферизировать END и спросить следующий ключ: вы DOWN... повеселись!)
- и вы тратите дисковое пространство на хранение листа с таким количеством пустых строк только для этой строки 500
У вас могут быть причины для реализации ключевого супрессора, но всегда помните, что пользователю очень просто обойти его, и это нужно учитывать очень тщательно.
qaru.site
Ограничения на внесение изменений в файлы Word и Excel
Ограничения на внесение изменений в Word
-
На вкладке Рецензирование в группе Защитить нажмите кнопку Ограничить редактирование.
Появится панель Ограничить форматирование и редактирование.
-
В разделах Ограничения на форматирование, Ограничения на редактирование и Включение защиты выберите нужные вам параметры.
Чтобы настроить другие параметры защиты, выберите Файл > Защита документа.
Ограничения на внесение изменений в Excel
На вкладке Рецензирование в группе Защита обратите внимание на следующие параметры защиты:
-
Защитить лист : защита листа и содержимого заблокированных ячеек.
-
Защитить книгу : защита структуры и окон книги.
-
Разрешить изменение диапазонов : определение диапазонов, которые можно редактировать.
Чтобы настроить другие параметры защиты, выберите Файл > Защита книги.
Ограничения на внесение изменений в Word
-
На вкладке Рецензирование в группе Защитить нажмите кнопку Ограничить редактирование.
-
Появится панель Ограничить форматирование и редактирование.
-
В разделах Ограничения на форматирование, Ограничения на редактирование и Включение защиты выберите нужные вам параметры.
Чтобы настроить другие параметры защиты, выберите Файл > Защита документа.
Ограничения на внесение изменений в Excel
На вкладке Рецензирование в группе Изменения обратите внимание на следующие параметры защиты:
-
Защитить лист : защита листа и содержимого заблокированных ячеек.
-
Защитить книгу : защита структуры и окон книги.
-
Защитить книгу и дать общий доступ : запрет на удаление исправлений.
-
Разрешить изменение диапазонов : определение диапазонов, которые можно редактировать.
Чтобы настроить другие параметры защиты, выберите Файл > Защита книги.
support.office.com
Каждому пользователю свой лист/диапазон | Excel для всех
Хитрости » 12 Июнь 2012 Дмитрий 105576 просмотровОчень часто на своих тренингах и в форумах я слышу вопрос: как защитить доступ к книге так, чтобы для каждого пользователя был доступен только свой лист/листы? А другие ячейки или листы были недоступны для изменения или просмотра? Или скрыть отдельные столбцы с глаз пользователя? Часть подобного функционала предоставляется стандартными средствами Excel, а другая(например, доступность просмотра только конкретных листов) достигается только через макросы. В этой статье хочу привести несколько примеров реализации подобных разграничений прав между пользователями, их плюсы и минусы.
Разграничение прав доступа при помощи VBA
Разграничение доступа к ячейкам стандартными средствами Для разграничения доступа к ячейкам на листе можно воспользоваться инструментом Разрешить изменение диапазонов(Allow Users to Edit Ranges), расположенном на вкладке Рецензирование(Review), группа Изменения(Changes): Это стандартный инструмент, для использования которого нет необходимости подключать что-то дополнительно и он относительно прост в использовании. Данный инструмент позволяет назначить каждому отдельному диапазону ячеек свои пароли, диапазоны могут располагаться на разных листах книги или на одном листе: Например, сотрудники коммерческого отдела в общем файле бюджета(картинка выше) должны иметь возможность заполнять только ячейки строк со статьями выручки (строки 8-11, 13-14), а производственный отдел строки 18-22, в которых расположены статьи по расходам производственного отдела. При этом сотрудники коммерческого отдела не должны иметь возможность изменять данные статей другого отдела – каждый только данные своих статей. Для начала необходимо для сотрудников каждого отдела создать отдельные диапазоны, к которым они будут иметь доступ. Для этого переходим на вкладку Рецензирование(Review) -группа Изменения(Changes) -Разрешить изменение диапазонов(Allow Users to Edit Ranges). Появится диалоговое окно создания/изменения диапазонов: Нажимаем Создать(New). Появится другое окно, в котором необходимо указать имя диапазона(Title) (коммерческий), доступные для изменения ячейки(Refers to cells) (C8:N11;C13:N14) и вписать пароль(Range password) (1111): После нажатия Ок появится окно подтверждения пароля. Необходимо указать тот же пароль, что был указан ранее для данного диапазона.Примечание: если нажать на кнопку Разрешения(Permissions), то можно установить доступ без пароля для конкретных групп пользователей, если группы настроены политикой доменной сети. Точно так же создаем второй диапазон – "производственный", но для него указываем другой пароль(например – 2222). После этого у нас в главном окне управления диапазонами будет два диапазона: Здесь можно еще раз проверить все ли правильно указано, при необходимости изменить (так же изменить диапазоны можно в любое время, вызвав данное окно с вкладки Рецензирование(Review) -Разрешить изменение диапазонов). После этого нажимаем Применить(Apply). Теперь, чтобы такая защита сработала необходимо непосредственно защитить лист. Это можно сделать либо сразу из этого же окна, нажав кнопку Защитить лист, либо закрыв окно перейти на вкладку Рецензирование(Review) и в группе Изменения(Changes) выбрать Защитить лист(Protect sheet): В появившемся окне проставляем галочки для тех действий, которые мы хотим разрешить делать пользователю на защищенном листе без ввода пароля(например, на картинке выше помимо стандартного выделения ячеек разрешена вставка столбцов. Подробнее про защиту листов и ячеек можно прочитать в статье - Защита листов и ячеек в MS Excel). Указываем пароль (например 3333), подтверждаем пароль в появившемся окне и нажимаем Ок. Лист защищен.Что важно: не следует указывать здесь пароль, который совпадает хотя бы с одним из паролей для отдельных диапазонов. Думаю, понятно почему: чтобы защиту не могли снять те, кому этого не положено делать.
Теперь остается сообщить сотрудникам отделов их пароли: производственный - 2222, коммерческий – 1111.При первой попытке изменить данные в ячейках C8:N11;C13:N14- будет запрошен пароль на изменение ячеек созданного диапазона "коммерческий" (1111):Если пользователю известен пароль для диапазона – его необходимо будет ввести лишь один раз. В дальнейшем для ввода данных в ячейки этого диапазона вводить пароль не придется до тех пор, пока файл не будет закрыт. После повторного открытия файла пароль необходимо будет указать заново.Однако, если сотрудник другого отдела попытается изменить ячейки производственного отдела и пароль ему неизвестен – изменить данные этих ячеек не получится.Также ни сотрудники коммерческого отдела, ни сотрудники производственного отдела не смогут изменить данные столбцов А и В(№ и наименование статьи), заголовки таблицы(строки с 1-ой по 7-ю) и строки с итоговыми формулами (12, 15 и т.д. – закрашенные зеленым). Они смогут изменять только те ячейки, которые перечислены в назначенных каждому отделу диапазонах. Внести данные в другие ячейки(не перечисленные в разрешенных диапазонах) можно будет исключительно сняв общий доступ с книги, а после этого защиту с листа –Рецензирование(Review) -группа Изменения(Changes) -Снять защиту листа(Unprotect sheet). Но снять общую защиту сможет только тот, кто её создавал и кому известен "главный" пароль. Как правило это администратор или некий "смотрящий" файла и другие пользователи этот пароль не знают.Плюс подобного метода в том, что такая защита может быть установлена для книги в общем доступе(подробнее про книги с общим доступом можно прочитать в статье - Ведение журнала сделанных в книге изменений).Что необходимо учитывать для книг с общим доступом: создавать диапазоны для пользователей и устанавливать защиту на лист необходимо ДО назначения книге общего доступа, т.к. после того, как книге будет назначен общий доступ изменять параметры защиты листов и книги запрещено. При этом запрещены как установка защиты так и её снятие.Минус данного метода в том, что нет дружественного интерфейса снятия защиты. Например, при попытке изменить какие-то ячейки одного из назначенных диапазонов нет никакой информации о том, что это за диапазон(коммерческий или производственный). Что в свою очередь может запутать пользователя. Так же данным методом невозможно скрыть листы, либо отдельные строки и столбцы. Можно лишь запретить изменение ячеек.
Разграничение прав доступа при помощи VBAСамый большой минус всех методов ниже: они не будут работать при отключенных макросах(Что такое макрос и где его искать?). Во всех приложенных к статье файлах это предусмотрено и если макросы будут отключены, то пользователь увидит лист, предлагающий включить макросы. Подробнее см. в статье: Как запустить файл с включенными макросами?Плюс подобного подхода - мы практически не ограничены в правилах: можем скрывать от отдельных пользователей любые листы, строки и столбцы, защищать отдельные ячейки и т.п. Я ниже приведу несколько вариантов реализации защиты кодами, а вам останется лишь выбрать тот, который больше подходит под задачу. Первые три больше демонстрационные, чтобы показать что можно сделать. А вот последний пример - Практический пример с использованием администратора - наиболее приближен к задачам, применяемым в работе и наиболее удобен для распространения среди пользователей.Проект VBA во всех файлах открыт для просмотра и изменений. Однако перед распространением решений в реальности лучше его закрыть от просмотра и изменений - Как защитить проект VBA паролем.Важно: приведенные ниже решения могут работать некорректно в книгах с общим доступом. А те решения, в которых устанавливается защита на листы вообще не будут работать, т.к. для книг с общим доступом невозможно изменять параметры защиты листов и книг.
- Доступ пользователям только к определенным листамИсходная задача: дать возможность пользователю видеть и работать только на определенных листах - тех, которые мы ему выделили. При этом он даже не подозревает, что есть другие листы. Как работает. Открываем файл - автоматом отображается лишь один лист "Main", доступный всем пользователям, жмем на кнопку, появляется форма:
В форме необходимо выбрать пользователя и указать пароль, соответствующий этому пользователю. Важно: Пароли и список доступных листов можно редактировать на очень скрытом листе "Users". Для каждого пользователя можно указать несколько листов. Указывать имена листов необходимо в точности такие же, какие они на самом деле. Это значит, что и регистр букв и каждый пробел должен быть учтен. Для разделения записей с несколькими листами используется точка-с-запятой(Лист1;Лист2;Лист3).На листе "Main" перечислены имена пользователей, пароли для них и доступные для просмотра листы. Данная информация указаны только для ознакомления и тестов. Менять данные для реальных задач необходимо на листе "Users".
Важно: файл может работать нестабильно в книгах с общим доступом.
Скачать пример
Tips_Macro_Sheets_for_Users.xls (84,5 KiB, 6 081 скачиваний)
- Доступ пользователю к определенным листам и возможность изменять только отдельные ячейкиПомимо того, что можно ограничить пользователю свободу выбора листов, ему можно еще и ограничить диапазоны ячеек, которые ему разрешено изменять. Иначе говоря, человек сможет работать только на Лист1 и Лист2 и вносить изменения только в указанные для каждого из листов ячейки. Файл с примером работает так же, как и пример выше: открываем книгу - видим только один лист "Main", жмем кнопку. Появляется форма, выбираем пользователя. Появятся только разрешенные листы и на этих листах можно изменять только те ячейки, который мы разрешим в настройках. При этом диапазоны для изменения можно указать для каждого листа разные. Важно: Пароли, список доступных листов и диапазонов можно редактировать на очень скрытом листе "Users". Для этого его необходимо отобразить, как описано в статье: Как сделать лист очень скрытым.Чтобы разрешить изменять диапазоны на Лист1 - А1:А10 и А15:А20, а на Лист2 - В1:В10 и В15:В20, необходимо на листе "Users" указать листы: Лист1;Лист2 и диапазоны: A1:A10,A15:A20;B1:B10,B15:B20На листе "Main" пароли и фамилии указаны только для ознакомления и тестов. Менять данные для реальных задач необходимо на листе "Users".Пароль на листы указывается напрямую в коде. Для изменения пароля необходимо перейти в редактор VBA(Alt+F11), раскрыть папку Modules, выбрать там модуль sPublicVars и изменить значение 1234 в строке: Public Const sPWD As String = "1234":
Важно: защита диапазонов достигается за счет установки защиты листа. Поэтому файл не будет работать в книгах с общим доступом.
Скачать пример
Tips_Macro_Sheets_Rng_for_Users.xls (86,0 KiB, 3 137 скачиваний)
- Доступ к определенным листам и скрытие указанных строк/столбцовИ еще чуть-чуть испортим жизнь пользователю: каждому пользователю видны только свои листы и виден только свой диапазон на этом листе. Точнее - строка или столбец. Все так же, как и в файлах выше(Пароли, список доступных листов и диапазонов можно редактировать на очень скрытом листе "Users". Для этого его необходимо отобразить, как описано в статье: Как сделать лист очень скрытым).На листе "Users" доступны следующие настройки: в самом правом столбце необходимо указать скрывать столбцы(C) или строки(R) указанного диапазона.Например, указаны диапазоны на Лист1 - А1:А10 и А15:А20, а на Лист2 - В1:В10 и В15:В20, а в правом столбце - R;C. Значит на Лист1 будут скрыты строки 1:10, 15:20, а на Лист2 столбец В. Почему так заумно? Потому что нельзя скрыть только отдельные ячейки - можно скрыть лишь столбцы или строки полностью.На листе "Main" пароли и фамилии указаны только для ознакомления и тестов. Менять данные для реальных задач необходимо на листе "Users".Пароль на листы указывается напрямую в коде. Для изменения пароля необходимо перейти в редактор VBA(Alt+F11), раскрыть папку Modules, выбрать там модуль sPublicVars и изменить значение 1234 в строке: Public Const sPWD As String = "1234":
Важно: защита отображения скрытых строк и столбцов достигается за счет установки защиты листа. Поэтому файл не будет работать в книгах с общим доступом.
Скачать пример
Tips_Macro_Sheets_Hide_Rng_for_Users.xls (100,0 KiB, 3 028 скачиваний)
- Практический пример с использованием администратораВсе примеры выше имеют один мал
www.excel-vba.ru
Защита листа - Excel
Примечание: Мы стараемся как можно оперативнее обеспечивать вас актуальными справочными материалами на вашем языке. Эта страница переведена автоматически, поэтому ее текст может содержать неточности и грамматические ошибки. Для нас важно, чтобы эта статья была вам полезна. Просим вас уделить пару секунд и сообщить, помогла ли она вам, с помощью кнопок внизу страницы. Для удобства также приводим ссылку на оригинал (на английском языке).
Чтобы предотвратить умышленное или случайное изменение, перемещение или удаление данных на листе другими пользователями, можно заблокировать ячейки на листе Excel, а затем защитить его паролем. Предположим, что у вас есть лист отчета о работе группы и вы хотите, чтобы ее участники могли добавлять данные только в определенные ячейки и не могли изменять другие элементы. С помощью защиты листа можно сделать доступными для редактирования только определенные части листа, после чего пользователи не смогут изменять данные в других его областях.
Важно:
-
Защита листа не является функцией безопасности. Она просто запрещает изменение заблокированных ячеек на листе.
-
Защита листа отличается от защиты файла или книги Excel паролем. Дополнительные сведения см. ниже.
-
Сведения о том, как заблокировать файл, чтобы другие пользователи не смогли открыть его, см. в статье Защита файла Excel.
-
Чтобы предотвратить добавление, изменение, перемещение, копирование или скрытие и отображение листов в книге, см. статью Защита книги.
-
Чтобы узнать, чем защита файла Excel отличается от защиты книги или листа, прочтите статью Защита и безопасность в Excel.
Выбор элементов листа для блокировки
Вот какие элементы можно заблокировать на незащищенном листе:
Примечание: Элементы ActiveX, элементы управления форм, фигуры, диаграммы, графические элементы SmartArt, спарклайны, срезы, временные шкалы и некоторые другие элементы блокируются сразу после добавления в таблицу. Однако блокировка будет работать только в том случае, если включена защита листа. Дополнительные сведения о том, как включить защиту, см. в следующем разделе.
Включение защиты листа
Защита листа выполняется в два этапа: сначала нужно разблокировать ячейки, которые пользователи должны изменять, а затем защитить лист с использованием пароля или без него.
Шаг 1. Разблокировка всех ячеек, которые необходимо изменять
-
В файле Excel щелкните ярлычок листа, который вы хотите защитить.
-
Выделите ячейки, которые должны изменять другие пользователи.
Совет: Чтобы выделить несколько несмежных ячеек, нажмите и удерживайте клавишу CTRL и щелкните их левой кнопкой мыши.
-
Щелкните правой кнопкой мыши в любом месте листа и выберите команду Формат ячеек (либо нажмите клавиши CTRL+1 или COMMAND1 на компьютере Mac), а затем откройте вкладку Защита и снимите флажок Защищаемая ячейка.
Шаг 2. Защита листа
Решите, какие действия пользователи должны выполнять на листе (например, вставка и удаление столбцов или строк, изменение объектов, сортировка или использование автофильтра). Кроме того, вы также можете указать пароль, чтобы заблокировать лист. Пароль не позволит другим пользователям снять с листа защиту — его потребуется ввести для ее отключения.
Ниже приведены инструкции по защите листа.
-
На вкладке Рецензирование нажмите кнопку Защитить лист.
-
В списке Разрешить всем пользователям этого листа установите флажки для элементов, изменение которых должно быть доступно пользователям.
Параметр
Возможность
выделение заблокированных ячеек
Перемещение указателя на ячейки, для которых установлен флажок Защищаемая ячейка на вкладке Защита в диалоговом окне Формат ячеек. По умолчанию пользователям разрешено выделять защищенные ячейки.
выделение незаблокированных ячеек
Перемещение указателя на ячейки, для которых снят флажок Защищаемая ячейка на вкладке Защита в диалоговом окне Формат ячеек. По умолчанию пользователям разрешено выделять незащищенные ячейки, а также перемещаться между незащищенными ячейками на защищенном листе с помощью клавиши TAB.
форматирование ячеек
Изменение параметров в диалоговых окнах Формат ячеек или Условное форматирование. Если условное форматирование было применено до установки защиты листа, форматирование будет изменяться при вводе значения, удовлетворяющего определенному условию.
форматирование столбцов
Использование любых команд форматирования столбцов, включая изменение ширины столбца или скрытие столбцов (вкладка Главная, группа Ячейки, кнопка Формат).
форматирование строк
Использование любых команд форматирования строк, включая изменение высоты строки или скрытие строк (вкладка Главная, группа Ячейки, кнопка Формат).
вставку столбцов
Вставка столбцов.
вставку строк
Вставка строк.
вставку гиперссылок
Вставка новых гиперссылок (даже в незаблокированных ячейках).
удаление столбцов
Удаление столбцов.
Примечание: Если Удаление столбцов защищена, а Вставка столбцов не защищена, пользователь может вставлять столбцы, но их нельзя удалить.
удаление строк
Удаление строк.
Примечание: Если Удаление строк защищена и Вставка строк не защищена, пользователь может вставлять строки, но их нельзя удалить.
сортировку
Использование команд для сортировки данных (вкладка Данные, группа Сортировка и фильтр).
Примечание: Пользователи не смогут сортировать диапазоны, содержащие заблокированные ячейки на защищенном листе, независимо от настройки этого параметра.
использование автофильтра
Использование стрелок раскрывающегося списка для изменения фильтра в диапазонах, если применяются автофильтры.
Примечание: Пользователи не смогут применять или удалять автофильтры на защищенном листе независимо от настройки этого параметра.
использование отчетов сводной таблицы
Форматирование, изменение макета, обновление данных либо иное изменение отчетов сводной таблицы, а также создание отчетов.
изменение объектов
Выполнять следующие действия:
-
Внесение изменений в графические объекты, в том числе карты, встроенные диаграммы, фигуры, надписи и элементы управления, которые не были разблокированы перед установкой защиты листа. Например, если на листе есть кнопка, запускающая макрос, ее можно нажать, чтобы запустить макрос, но нельзя удалить.
-
Внесение каких-либо изменений (например, форматирование) во встроенную диаграмму. Диаграмма по-прежнему будет обновляться при изменениях ее исходных данных.
-
Добавление или редактирование примечаний.
изменение сценариев
Просмотр скрытых сценариев, изменение сценариев с установленным запретом на изменения и удаление этих сценариев. Пользователи могут изменять значения в изменяемых ячейках, если ячейки не защищены, и добавлять новые сценарии.
-
-
При желании можно ввести пароль в поле Пароль для отключения защиты листа и нажать кнопку ОК. В диалоговом окне Подтверждение пароля еще раз введите пароль и нажмите ОК.
Важно:
-
Используйте надежные пароли, состоящие из букв в верхнем и нижнем регистре, цифр и специальных знаков. В ненадежных паролях используются не все эти символы. Пароль должен состоять не менее чем из 8 знаков, но лучше использовать парольную фразу длиной не менее 14 знаков.
-
Очень важно запомнить свой пароль. Если вы забудете пароль, корпорация Майкрософт не сможет его восстановить.
-
Если лист защищен, команда Защитить лист на ленте изменяется на Снять защиту листа. Команду Снять защиту листа можно найти на вкладке Рецензирование в группе Изменения.
Если лист не защищен, на ленте выводится кнопка "Защитить лист".
Чтобы снять защиту листа, сделайте следующее:
-
Выберите лист, защиту которого вы хотите снять.
-
Выберите Файл > Сведения > Защита > Снять защиту листа или РецензированиеИзменения > Снять защиту листа.
-
Если лист защищен паролем, введите его в диалоговом окне Защита листа и нажмите кнопку OK.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community, попросить помощи в сообществе Answers community, а также предложить новую функцию или улучшение на веб-сайте Excel User Voice.
См. также
Защита и безопасность в Excel
Защита файла Excel
Защита книги
Блокировка и разблокировка определенных областей защищенного листа
Блокировка ячеек
Отображение и скрытие формул
Защита элементов управления и связанных ячеек на листе
Копирование и вставка данных на защищенном листе
Видео: Защита книги или листа паролем (Excel 2013)
support.office.com