Справочник vba excel - Мир ПК
Fruitsekta.ru

Мир ПК
52 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Справочник vba excel

Справочник по Visual Basic for Applications (VBA)

Содержание:

Предисловие

Настоящая книга является с одной стороны, подробным справочником по Visual Basic for Applications (VBA), а с другой стороны, самоучителем по составлению и разработке приложений, написанных на этом языке. Это уникальное сочетание, которое, следуя рекламному подходу, можно назвать «два в одном», обеспечивает большую гибкость при решении читателем своих собственных задач. Самоучитель на большом количестве примеров умело и доступно обучает, как можно быстро и эффективно решать разнообразные задачи. В справочнике приводится подробное описание возможностей VBA, имея такие сведения под рукой у читателя исчезнет необходимость бегать по магазинам в поиске дополнительной литературы при написании самостоятельных приложений, что несомненно сбережет время и кошелек.

Самоучитель состоит из уроков. В каждом из уроков разрабатывается пример пользовательского приложения и дается подробный анализ. Тексты всех программ снабжены доскональными комментариями. Можно сказать, что все рассматриваемые программы разложены буквально по маленьким разжеванным кусочкам, которые читателю только и остается проглотить. По завершению урока предлагается самостоятельное задание, выполнение которого поможет лучше закрепить разобранный материал.

С помощью VBA можно легко и быстро создавать пользовательские приложения, используя единую для всех офисных программ среду и язык. Научившись разрабатывать приложения для одной офисной программы, например Excel (которой, как наиболее популярной офисной программе, в основном и посвящена данная книга), можно создавать приложения и для других офисных программ, например Access. Внимательно читая эту книгу, можно стать искусным разработчиком и научиться пользоваться мощными средствами разработки приложений Excel для того, чтобы конструировать эффективные и применимые к реальной жизни приложения. Кроме того, по своей структуре, интерфейсу и синтаксису VBA образует ядро Visual Basic. Поэтому тот, кто изучит программирование на VBA очень быстро может освоить и Visual Basic.

В данной книге уделяется огромное внимание программированию на языке VBA, но это совсем не требует от читателя быть профессиональным программистом. VBA обладает мощными встроенными интеллектуальными средствами, которые позволяют даже начинающему пользователю быстро самостоятельно разрабатывать профессиональные приложения. Например, при написании кода программы редактор VBA сам предлагает пользователю возможные продолжения составляемых им инструкций. Другим примером встроенных интеллектуальных средств VBA является макрорекордер, который переводит все выполняемые вручную пользователем действия в основном приложении на язык VBA. Таким образом, макрорекордер позволяет пользователю поручать VBA самому создавать большие куски кода разрабатываемого приложения.

Краткий обзор материала книги

Книга состоит из двух частей, первая из которых имеет 15 глав со следующим кратким содержанием:
Во введении на простейших примерах объясняется, зачем нужен VBA.
Глава 1 отвечает на вопрос: «Что такое VBA?». В ней также дано описание основных структурных элементов VBA.
В главе 2 рассматриваются основные элементы объектной иерархической структуры VBA.
В главах 3 и 4 дан обзор методов VBA, программирующих команды для работы с рабочим листом, которые позволяют строить прогрессии, создавать фильтры и консолидировать данные, организовывать сценарии и структуры, решать уравнения, подводить промежуточные итоги и сортировать данные.
Глава 5 описывает, как строятся диаграммы в VBA.
В главе 6 обсуждается, как программировать одно из наиболее мощных средств по анализу данных — сводные таблицы.
В глава 7 приведен обзор элементов управления VBA и описание того, как в VBA создаются и программируются диалоговые окна.
Глава 8 продолжает начатый в предыдущей главе разговор по созданию пользовательского интерфейса. В ней объясняется, как создать пользовательское меню и панели инструментов.
Глава 9 посвящена вопросу создания очень полезного и наглядного средства Microsoft Office — помощника.
В главе 10 дано обзорное описание процесса создания графических объектов.
В главе И приводится краткая информация по основным понятиям языка VBA: какими типами данных оперирует VBA, что такое переменная, константа, массив и динамический массив, как создается пользовательский тип переменной. В ней перечислены операции, встроенные функции, операторы и процедуры VBA, а также типы процедур.
В главе 12 обсуждаются принципы создания процедур обработки ошибок, а также встроенные в редактор VBA мощные средства по отладке программ.
В главе 13 описаны типы файлов и способы работы с ними в VBA.
Глава 14 объясняет, как в VBA можно создавать пользовательские объекты.
В главе 15 дан обзор методов по работе с внешними базами данных, использовании Microsoft Query, открытой связи с базой данных (ODBC) и объектов доступа к данным (DAO).

Во второй части приведено 14 уроков самоучителя по созданию пользовательских приложений:
В уроке 1 на примере создания приложение по игре в орел и решку показывается: как в редакторе VBA создается программа и как она запускается на выполнение; создание пользовательского диалогового окна; программный контроль за вводом в поле чисел, а не строковой информации; программное управление запретом ввода данных в поле; работа с функцией генератора случайных чисел; вывод числовой информации в поле.
В уроке 2 на примере разработки приложения по расчету маргинальной процентной ставки объясняется: как программно решаются уравнения; программный ввод формулы в ячейку рабочего листа; финансовые функции; проверка корректности ввода данных из диалогового окна; назначение клавишам и функций кнопок диалогового окна; создание всплывающих подсказок у элементов управления; использование MacroRecorder для упрощения и убыстрения написания кода; программное форматирование ячеек рабочего листа.
В уроке 3 на рассмотренном примере работы со списком показывается: как заполняется список; управление выбором нескольких элементов из списка; как выполнить специфицированную операцию над выбранными элементами из списка с помощью переключателей.
В уроке 4 на примере разработки приложения по расчету амортизации объясняются: финансовые функции расчета амортизации; управление видимостью отдельных элементов управления в окне диалога; программный вывод объектов WordArt на рабочий лист.
В уроке 5 на рассмотренном примере показывается: ввод формул при помощи элемента управления RefEdit; нахождение корня уравнения зависящего от параметра; установка параметров метода GoalSeek; создание прогрессий на рабочем листе; программирование протаскивания маркера заполнения выделенного диапазона на рабочем листе; построение диаграмм.
В уроке 6 на обсужденных примерах показывается: программное управление размерами диалогового окна и элементов управления; задание последовательности элементов управления в виде массива объектов; определение текущего объема вклада; задание параметров счетчика; как можно программно или при помощи drag-and-drop операции перемещать элементы управления по поверхности диалогового окна.
В уроке 7 на примере конструируемого приложения демонстрируется: как при помощи диалогового окна можно заполнить базу данных на рабочем листе; программирование примечаний и текстовых полей на рабочем листе; использование переключателя и флажков; создание пользовательского заголовка окна приложения и программное закрепление области.
В уроке 8 на примере разработки приложения по построению поверхности объясняется: как табулируются функции, зависящие от двух аргументов; преобразование формулы с аргументами х и у в формулу рабочего листа; программное построение поверхности; запись диаграммы в графический файл; считывание графического файла в элемент управления image; программное управление углом зрения, под которым смотрят на поверхность, и углом поворота поверхности вокруг оси Z.
В уроке 9 на примере конструируемого приложения по расчету периодических выплат показывается: как используется финансовая функция пплдт (РМТ); вывод результатов табулирования функции в элемент управления ListBox (список); построение диаграммы, тип которой выбирается в группе переключателей; программная проверка наличия файла на диске.
В уроке 10 на примере разработки приложения по работе с базой данных демонстрируется: конструирование пользовательского интерфейса; создание приложения, работающего с несколькими диалоговыми окнами; поиск информации в базе данных; редактирование записей в базе данных; удаление ненужных записей из базы данных; архивация данных; программирование фильтрации и сортировки данных; создание сводных таблиц; добавление пользователем новых элементов в список с полем во время выполнения программы.
В уроке И на примере игры в крестики и нолики объясняется: удаление рисунка из элемента управления; учет количества щелчков по элементу управления; управление видимостью границы элемента управления; создание игрового поля.
В уроке 12 на примере приложения по построению линии тренда показывается: конструирование многостраничных диалоговых окон и линии тренда; применение метода offset для вывода данных на рабочем листе; считывание данных из каждой отдельной ячейки диапазона.
В уроке 13 на примере приложения по составлению расписания обсуждается: передача информации между элементами управления при обработке события click; управление видимостью рисунков и цветом элементов управления.
В уроке 14 на примере показана работа с текстовыми файлами: считывание и запись в файл последовательного доступа; считывание и запись записей в файла прямого доступа; создание и работа с пользовательскими типами данных; создание простейшего текстового редактора и заставки приложения.

Читать еще:  Как сделать фильтрацию в excel

Книги для изучения Excel и VBA

Содержание этой страницы полностью соответствует названию. Здесь я буду выкладывать книги для изучения Excel и VBA, различные справочники или ссылки на ресурсы, с которых подобные справочники и книги можно скачать. Выложенные пособия могут пригодиться не только начинающим изучать Excel и VBA, но и более продвинутым пользователям.

Справочник по функциям листа Excel — это справочник по функциям листа Excel в формате справки Windows .chm. Файл содержит полный перечень функций листа Excel на русском и английском языках и снабжена примерами использования и применения функций. Справочник может понадобиться как начинающим, так и уже более искушенным пользователям.

Формат файла: .chm

Справочник по функциям листа Excel (532,2 KiB, 15 676 скачиваний)
У Вас нет прав для скачивания этого файла. Возможно, Вы не зарегистрированы на сайте. Зарегистрируйтесь и попробуйте скачать снова.

VBA Программирование в MSOffice — очень хороший учебник для начинающих программировать в VBA. Книга написана сертифицированным преподавателем Microsoft Office доступным для понимания языком, снабжена грамотными листингами кодов. Учебник поможет освоить программирование не только в Microsoft Excel, но и Microsoft Word и Microsoft Project.

Формат файла: .pdf

VBA Программироваие в MSOffice (4,1 MiB, 26 875 скачиваний)
У Вас нет прав для скачивания этого файла. Возможно, Вы не зарегистрированы на сайте. Зарегистрируйтесь и попробуйте скачать снова.

Уокенбах Дж. Профессиональное программирование в VBA Excel 2003 — пожалуй самый популярный учебник для начинающих. Многие начинали именно с него. Правда, в печатной версии данного учебника использованы листинги кодов, которые не всегда нужно принимать на веру — очень часто там встречаются опечатки и вместо английских символом встречаются русские. Поэтому лично я бы посоветовал не копировать коды напрямую из книги, а переписывать их вручную в редакторе VBA. Так и запомнится лучше и избавите себя от поиска ошибок.

Формат файла: .pdf

Ссылка удалена по требованию правообладателя

Office 2007. Самоучитель — Если Вы решили поближе познакомиться с интерфейсом и основными возможностями приложений Microsoft Office, то советую почитать данную книгу. В ней описано все необходимое для успешной работы в таких приложениях как: Excel, Word, Outlook, Power Point, Access. После прочтения Вы сможете создавать красивые презентации и информативные графики, научитель создавать задачи в Outlook и базы в Access.

Формат файла: .pdf

Ссылка для скачивания: 2007_Samouchitel.zip
Пароль к архиву: 12345

Он-лайн видеообучение — Данная ссылка отличается от всех описанных выше тем, что это не книга — это он-лайн сервис. Бесплатный. На этом сайте просто огромное количество материала и по Excel, и по Word, и по Outlook, и по VBA и по другим языкам программирования. Чем удобны такие материалы: Вам рассказывают и одновременно показывают необходимые действия. Это намного лучше одной статической картинки. И я бы сравнил это с живыми курсами, с той лишь разницей, что Вы не можете задать вопрос преподавателю. Но есть и плюсы — Вы в любой момент можете остановить урок, отдохнуть, а затем продолжить обучение с того момента, на котором закончили.

Русская справка по Visual Basic for Application(VBA) — Это официальная справка по Visual Basic for Application(VBA), которая была включена в пакет Microsoft Office 97. Тогда справка была еще русифицирована. Ни для кого не секрет, что сейчас во всех версиях офиса справка по VBA доступна только на английском языке, независимо от локализации. А по буржуйски не все могут читать(даже сносно, как показывает практика).
Хочу сразу предупредить — т.к. справка предназначена для довольно старой версии, в ней описаны не все методы и свойста. Но основная их масса все же описана и, надеюсь, данная справка поможет Вам в начальном изучении VBA.

Формат файла: .файл справки

RUS_VBA.zip (1,1 MiB, 9 292 скачиваний)
У Вас нет прав для скачивания этого файла. Возможно, Вы не зарегистрированы на сайте. Зарегистрируйтесь и попробуйте скачать снова.

Объекты Shell_RegExp и пр — целый сборник примеров работы с такими объектами как: Shell, RegExp, FileSystemObject, WshShell, Dictionary, WshNetwork, WScript, константы и функции WScript. Все примеры структурированы по разделам и сделаны в качестве справки по свойствам и методам каждого из объектов. Очень удобно, если не очень часто применяете в работе эти объекты и что-то забылось.

Читать еще:  Команда автоформат в excel

Формат файла: .файл справки

_Shell_RegExp__.chm (207,6 KiB, 1 516 скачиваний)

VBA First Steps — по сути это сохраненный в формате справки сайт http://www.firststeps.ru/, который собрал в себе множество приемов по работе в VBA как для начинающих его изучать, так и для более продвинутых.

Формат файла: .файл справки

VBA_First_Steps.chm (1,1 MiB, 2 552 скачиваний)

vbfunction — описание и примеры использование почти всех встроенных функций VBA в алфавитном порядке от А.Климова.

Формат файла: .файл справки

vbfunction.chm (139,3 KiB, 2 725 скачиваний)

Учебники, справочники, самоучители

Посоветуйте пожалуйста самоучитель где всё разжованно и не понять не возможно

Обсуждение литературы следует вести не здесь, а в этой теме:
Обсуждение учебников, справочников, самоучителей по VBA

21.01.2012, 18:50

Есть ли литература (учебники/самоучители и пр.) по практическому применению языка C#?
Всем привет. Извиняюсь за тупой вопрос. Я начал изучать C#, но это все теория. Есть ли какая-либо.

Посоветуйте справочники, учебники и прочую литературу для студентов ВУЗов
Посоветуйте, пожалуйста, справочники, учебники и прочую литературу по С для студентов вузов.

Самоучители
Добрый вечер ) Уверена, многие изучали С++ самостоятельно. Вопрос: какая книга более всего.

21.01.2012, 20:412

О, если б такой был!

Я пользовался справкой Word 97 (она русская) и Стив Каммингс — VBA для «чайников»

22.01.2012, 00:073

Выбирайте какой лучше

22.01.2012, 01:42425.01.2012, 12:075 Вложения

LEKSB.rar (532.3 Кб, 4456 просмотров)
27.01.2012, 14:186

VBA в MS Office 2007 Автор: А.А. Заика

Бесплатная электронная версия учебника по ссылке: http://www.intuit.ru/department/se/vbamsoffice2007/1/ — регистрируйтесь и читайте на здоровье Мне там очень понравилось, что уроки не слишком большие и каждый урок снабжен примером (можно скачать) как и просили «не понять не возможно » . Успехов.

31.01.2012, 20:417

Пособие предельно структурировано (причем не в оглавлении), а во всем курсе. Почти как справочник, с постоянными примерами. Легко можно пропустить, то что уже знаете, не вчитываясь. Также четко структурировано описание различных объектов, их свойств .

Вложения

vbaprogrammingmsofficeforuser.rar (4.06 Мб, 5783 просмотров)
03.07.2012, 21:41807.07.2012, 05:14917.08.2012, 02:0110 Вложения

Вводный курс Visual Basic (vb_tutor_rus).zip (379.7 Кб, 2782 просмотров)
27.08.2012, 14:2011 Вложения

VBA_Help.zip (1.62 Мб, 3883 просмотров)
30.09.2012, 22:1912

Для продвинутых пользователей:

VBA 7.1 Language Reference
(с новшествами офиса 2013).

Вложения

[MS-VBAL].rar (2.93 Мб, 2517 просмотров)
03.01.2013, 22:1613

Джон Уокенбах Microsoft Excel 2010 Профессиональное программирование на VBA.
http://litvik.ru/2/13/uchebniki_manu. na-vba-cd.html

Я с этой книжкой много чего понял.

09.01.2013, 10:4914

Информации не много, но про переменные, типы данных VBA, управляющие структуры в VBA, некоторые другие вещи можно почитать.
(для начинающих)

09.01.2013, 20:1615

Каммингс С. VBA для «чайников», 2000г.
Аннотация (не моя):
Обсуждаемые приемы программирования иллюстрируются примерами, которые можно сразу же опробовать на практике. Полученные знания вы сможете применить как для настройки и усовершенствования популярных офисных приложений, включая приложения Office 2000, так и для создания собственных приложений.

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

Вложения

Стив Каммингс VBA для чайников (2000).pdf (8.05 Мб, 2654 просмотров)
09.01.2013, 22:2116

Гарбер Г.З. — Основы программирования на VBA в Microsoft Excel 2007

P.S. Тем у кого не качается с вложений: http://rghost.ru/42870161

Вложения

VBA_Garber.rar (3.54 Мб, 1938 просмотров)
09.01.2013, 22:3017

Ростислав Михеев — Программирование на VBA в Microsoft Office 2003

В основу книги положен материал учебного курса «Программирование в Microsoft Office для пользователей», который в течение нескольких лет читается сотрудникам крупнейших предприятий России. Рассмотрено программирование на языке VBA с использованием возможностей объектных моделей приложений Microsoft Office. Описан синтаксис языка VBA, основные приемы работы с редактором кода, впервые подробно рассматриваются объектные модели основных приложений Microsoft Office: Word, Excel, Access, Outlook, PowerPoint, Project. Материал сопровождается многочисленными практическими примерами. К каждой главе книги предусмотрены задания для самостоятельной работы с подробными решениями.

Вложения

VBA.zip (4.17 Мб, 1570 просмотров)
10.01.2013, 13:3618

Слепцова Л.Д. — Программирование на VBA в Microsoft Office 2010. Самоучитель

Описание: Эта книга предназначена для всех, у кого есть желание научиться программировать на языке VBA в среде Office 2010, начиная практически с нуля. Она предназначена для индивидуального обучения, написана простым, доступным языком и рассчитана на пользователей с любым уровнем компьютерных знаний. Книга содержит множество практических примеров, а выполнение всех приведенных пошаговых инструкций и практическое применение описанных приемов работы непосредственно при чтении книги поможет быстро научиться создавать собственные программы на языке VBA. Единственное, что действительно необходимо читателю, — это наличие под рукой компьютера с установленными программами Microsoft Office 2010 (хотя бы одной!) и искреннее стремление научиться программировать на языке VBA.

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

Несколько советов по работе с VBA в Excel


Добрый день!

Некоторое время назад меня попросили «помочь с Экселем», а потом и работа подвернулась такая, так что за последние пару месяцев я узнал много полезного, чем и хочу поделиться в догонку к недавней статье.

Предполагается, что вы знаете основы Visual Basic. Я не буду рассказывать, как создавать формы или модули, здесь только примеры кода.

Visual Basic

Опции

Во-первых, в VB массивы могут начинаться с индекса 1, что для многих странно, поэтому в начале модулей можно прописывать:

Так же рекомендуется прописать:

В этом случае интерпретатор потребует заблаговременного объявления всех переменных. Переменные объявлять нужно потому, что:
— VB запомнит их нАпиСание и не будет исправлять во всём коде на последний введенный вариант;
— иногда возникают ошибки с передачей переменных byRef, если они не объявлены (то есть надо или объявить переменную, или приписать в функции/процедуре перед ней byVal).

Читать еще:  Сложные диаграммы в excel

Ещё одним важным оператором является ON ERROR. Привожу варианты:

Возможности языка

Хотя VB довольно прост, полезно почитать документацию по его синтаксису. Я, например, с удивлением узнал, что можно прописывать сложные усолвия в SELECT’ах (аналог switch):

Ускорение работы макросов

Часто макросы требуют долгого времени выполнения, которое можно значительно сократить. В начале и в конце каждой ресурсоёмкой функции вызвать Prepare и Ended.

По порядку:
1. Отключить перерисовку объектов на экране, чтобы ничего не мигало.
2. Выключить расчет. Внимание, если макрос прерваляс посреди работы, то расчет так и останется в ручном режиме!
3. Не обрабатывать события.
4. Отображение границ страниц, тоже почему-то помогает.
5. В статусной строке выводятся различные данные, что замедляет работу, отключаем.
6. Это если нужно. Выключает сообщения Экселя. Например, мы делаем Workbook.Close, Эксель хочет спросить сохранить ли изменения. При выключении этого параметра все ответы будут даны автоматически (изменения не сохранятся).

Важно понимать, что VBA выполняет все действия так же, как и пользователь. Поэтому для того, чтобы установить параметры страницы, он каждый раз открывает и закрывает окно параметров. У меня выставлялись параметры для 10 листов, это реально не быстро. Поэтому делаем так:

Далее, часто нужно просмотреть различные диапазоны ячеек и что-то с ними сделать. Тут важно не использовать циклы for с перебором индексов, они медленные. Можно использовать встроенные функции Экселя, но удобнее всего такой вариант:
Данный код просматривает указанный диапазон, выбирает в нем «специальные ячейки», в данном случае все, в которых есть формулы (т.е. начинаются со знака равно). Для каждой ячейки смотрится, если она не закрашена, то её надо защитить (см. далее) и покрасить. Такой код работает очень быстро.

Для любых переменных, которым вы собираетесь присвоить книгу, лист, диапазон (ячейку) нужно предварительно объявить как Variant.

Естественно, что если вам нужны однотипные значения в ячейках, нужно использовать автозаполнение, всё равно как «растягивание» ячеек пользователем.

Второй диапазон должен включать первый, а второй необязательный параметр указывает тип автозаполнения.

Загрузка книги и события

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

Список доступных событий можно посмотреть вверху редактора VB. Например, я делал на событие Change проверку, где лежит ячейка, в которой было изменения, и если это нужный диапазон, то делалась запись в лог со старым и новым значением.

Защита

Во-первых сразу отмечу, что MS Office не исполняет макросы на компьютерах, где он не нашел антивируса, если книга зашифрована. Сталкивался на компьютерах, где антивирус был, но видимо Windows XP об этом не знала.

Ещё антивирус может странным образом мешать работе, вызывать ошибки, не совсем объяснимые. Показал айтишникам, сказали ок, что-то сделали, не знаю.

Итак, нам надо защитить книгу, чтобы ввод был разрешен только в нужные ячейки (формулы и заголовки поменять нельзя). Во-первых, нужно сделать соответствующие ячейки «не защищенными». Для этого делаем одно из:
— выделяем диапазон, формат ячеек, снять галочку «Блокировать ячейку»;
— выводим кнопку «Блокировать ячейку» в быстрый доступ и нажимаем её, очень удобно смотреть на неё чтобы понять, защищена ячейка или же нет;
— а это пригодится, чтобы проверить третий вариант — написать макрос, который снимает защиту с нужных ячеек сам.

Далее нужно защитить лист. На вкладке Рецензирование есть такая кнопка. Окошко просит ввести пароль и установить исключения (что можно будет делать пользователю). К сожалению, список исключений маловат. Самое обидное, что нельзя разрешить сворачивать/разворачивать группы столбцов/строк. Поэтому действуем так, на загрузку книги прописываем:
Знак подчеркивания продолжает логическую строку на следующей физической строке. Итак, здесь мы:
1. Сняли защиту.
2. Включили группировку.
3. Поставили защиту, при этом:
— защита только от юзера, макросы продолжают иметь полный доступ (!), крайне важно;
— разрешили сортировку, фильтрацию и форматирование строк/столбцов (высота/ширина);
— DrawingObject в данном случае снимает защиту с примечаний к ячейкам, может и ещё с чего.

Тут мы сталкиваемся с парой сюрпризов. Во-первых, не все макросы будут работать даже так. Известный баг, ничего не сделаешь. Нельзя вставить строку, например. Приходится снимать и тут же ставить защиту. Если «злоумышленник» в этот момент нажмет ctrl+break, то защита слетит.

Во-вторых, скажем никаким способом нельзя удалять строки (AllowDeletingRows), в которых есть защищенные ячейки, хоть одна. Подробнее вот тут.

Решением (костылем) является добавление кнопки или сочетания клавиш для удаления. Заодно можно проверить, чтобы пользователь не удалил чего не надо. В Workbook_open добавляем:

Теперь процедура будет вызываться при нажатии shift+delete.
Знаю, код некрасивый, простите. Здесь я пытался проверить, что выделена строка, то есть строк там 1, а ячеек не меньше тысячи. Чтобы удалить не то, придется выделить тысячу ячеек начиная не с первого столбца. Далее проверяется имя листа и номера строк. Вместо 50 был расчет последенй строки (ведь их число меняется, если мы их удаляем и добавляем).

Заключение

VBA — весьма глючная вещь, которая позволяет сворачивать горы в MS Office. Многие предприятяи используют модели на Excel годами, и если они сделаны хорошо, то всё работает.

Для изучения VBA подходит он сам, во-первых там хорошая справка. Например, чтобы узнать все варианты что можно разрешить в методе Protect, нажимаем F1, Protect, ввод. И вуаля.

Во-вторых, можно проделать требуемые действия вручную, записав макрос, а потом просмотрев его код. Код будет ужасен (например, при изменении параметров страницы, макрос запишет значения всех параметров и полей, а не только измененного вами), но ответы найдутся. Хотя, например, .AutoFit, который записывается при изменении высоты ячейки по содержимому (двойной клик на границе слева), на самом деле не работает.

Предлагаю знатокам поделиться своим опытом, дать советы в комментариях. Спасибо за внимание, удачных разработок вам.

Ссылка на основную публикацию
Adblock
detector