01 Что делает макрос
Мы часто посылаем сводные таблицы клиентам, сотрудникам, менеджерам и другим людям. Этот макрос помогает поставить защиту на сводную таблицу через VBA.
Объект PivotTable содержит несколько свойств, которые позволяют ограничить различные функции и компоненты сводной таблицы:
- EnableWizard: Установка этого свойства в значение False отключает PivotTable Tools - контекстное меню, которое обычно активизируется при щелчке внутри сводной таблицы. В Excel 2003, этот параметр отключает мастер диаграмм и сводных таблиц Pivot.
- EnableDrilldown: Установка этого свойства в False, мешает пользователям получить подробные данные, дважды щелкнув по полю сводной таблицы.
- EnableFieldList: Установка этого свойства в False препятствует активации списка полей или перемещению сводных полей.
- EnableFieldDialog: Установка этого свойства в значение False отключает способность пользователей изменять поле сводной с помощью диалогового окна.
- PivotCache.EnableRefresh: Установка этого свойства в значение False отключает возможность обновления сводной таблицы.
Вы можете установить любое из этих свойств независимо друг от друга либо установить все одновременно.
В этом макросе, мы применяем все ограничения к сводной таблице.
02 Код макроса
Sub
ZaschitaSvodnoiTablici()
'Шаг 1: Объявляем переменные
Dim
pt
As
PivotTable
'Шаг 2: Проверяем, что выделена сводная таблица
On
Error
Resume
Next
Set
pt = ActiveSheet.PivotTables(ActiveCell.PivotTable.Name)
'Шаг 3: Выход, если активная ячейка не в сводной таблице
If
pt
Is
Nothing
Then
MsgBox
"Вы должны поместить курсор в сводную таблицу."
Exit
Sub
End
If
'Шаг 4: Наложить ограничения для полей сводной
With
pt
.EnableWizard =
False
.EnableDrilldown =
False
.EnableFieldList =
False
.EnableFieldDialog =
False
.PivotCache.EnableRefresh =
False
End
With
End
Sub
03 Как работает макрос
1. Шаг 1 объявляет переменную объекта, используя Pt в качестве контейнера памяти для сводной таблицы.
2. Шаг 2 присваиваем активной сводной таблице переменную РТ. Мы делаем это, используя свойство ActiveCell.PivotTable.Name, чтобы получить имя целевого диапазона. Если активная ячейка не находится внутри сводной таблицы, выдается ошибка. Именно поэтому макрос использует On Error Resume Next Statement. Это говорит Excel продолжить макрос, если есть ошибка.
3. Шаг 3 проверяет переменную РТ - если она пустая, то выводим пользователю сообщение о том, что необходимо поместить курсор в сводную таблицу и выходим из процедуры.
4. На последнем этапе макроса, мы применяем все ограничения к сводной таблице.
04 Как использовать
Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:
1. Активируйте редактор Visual Basic, нажав ALT + F11.
2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
3. Выберите Insert➜Module.
4. Введите или вставьте код во вновь созданном модуле.
05 Скачать файл
Автор проекта
Дмитрий Якушев
Привет! Меня зовут Дмитрий. С 2014 года Microsoft Cretified Trainer. Вместе с командой управляем этим сайтом. Наша цель - помочь вам эффективнее работать в Excel.
Изучайте наши статьи с примерами формул, сводных таблиц, условного форматирования, диаграмм и макросов. Записывайтесь на наши курсы или заказывайте обучение в корпоративном формате.
Сайт https://akademia-excel.ru/
ИП Якушев Дмитрий Александрович
ОГРНИП: 314501721200022
ИНН: 501706813807
Образовательная лицензия № Л035-01255-50/01194039
Почта: info@akademia-excel.ru
Телефон для связи: + 7 (958) 697-73-88, + 7 (495) 145-23-86
Регистрация на сайте означает согласие с пользовательским соглашением и на получение рассылки и рекламных материалов.
Политика в отношении обработки и защиты персональных данных.
Банковские реквизиты:
Расчетный счет 40802810500000003597
Банк АО «Тинькофф Банк»
Юридический адрес Банка Москва, 123060,1-й Волоколамский проезд, д. 10, стр. 1
Корр. счет Банка 30101810145250000974
ИНН Банка 7710140679
БИК Банка 044525974
Подписывайтесь на нас в соц.сетях:
Сайт https://akademia-excel.ru/
ИП Якушев Дмитрий Александрович
ОГРНИП: 314501721200022
ИНН: 501706813807
Образовательная лицензия № Л035-01255-50/01194039
Банковские реквизиты:
Расчетный счет 40802810500000003597
Банк АО «Тинькофф Банк»
Юридический адрес Банка Москва, 123060,1-й Волоколамский проезд, д. 10, стр. 1
Корр. счет Банка 30101810145250000974
ИНН Банка 7710140679
БИК Банка 044525974
Регистрация на сайте означает согласие с пользовательским соглашением и на получение рассылки и рекламных материалов.
Политика в отношении обработки и защиты персональных данных.
Почта: info@akademia-excel.ru
Телефон для связи: + 7 (958) 697-73-88, + 7 (495) 145-23-86
Написать в тех.поддержку
Подписывайтесь:
авторизуйтесь