2 семестр / vba_2002
.pdfСобытие BeforeRightClick |
|
5 ] 5 |
|
События объекта Chart |
|
515 |
|
События объекта |
Application |
|
516 |
Включение событий уровня объекта Application |
. |
518 |
|
Определение факта открытия рабочей книги |
|
518 |
|
Отслеживание событий уровня объекта Application |
|
519 |
|
События объекта UserForm |
|
520 |
|
События, не связанные с конкретными объектами |
|
521 |
|
Событие OnTime |
|
522 |
|
Событие |
OnKey |
|
523 |
Резюме |
|
|
524 |
Глава 20. Взаимодействие с другимиприложениями |
525 |
Запуск другого приложения |
525 |
Активизация другого приложения |
528 |
Запуск аплетов папки Панель управления и мастеров |
529 |
Автоматизация |
530 |
Работа с внешними объектами |
530 |
Ранняя и поздняя привязка |
530 |
Простой пример |
533 |
Управление приложением Word из Excel |
533 |
Управление Excel из другого приложения |
536 |
Работа с ADO |
537 |
Использование метода SendKeys |
540 |
Резюме |
541 |
Глава 21. Создание и использование надстроек |
542 |
Что такое надстройка |
542 |
Сравнение надстройки со стандартной рабочей книгой |
542 |
Основные причины создания надстройки |
543 |
Использование менеджера надстроек Excel |
544 |
Создание надстройки |
545 |
Пример надстройки |
546 |
Настройка рабочей книги |
546 |
Тестирование рабочей книги |
546 |
Добавление описательной информации |
547 |
Создание надстройки |
547 |
Установка надстройки |
548 |
Распространение надстройки |
549 |
Изменение надстройки |
549 |
Сравнение файлов XLA и XLS |
550 |
Структура и размер файлов |
550 |
Членство в коллекциях |
550 |
Окна |
550 |
Листы |
551 |
Получение доступа к процедурам VBA надстройки |
551 |
Управление надстройками с помощью кода VBA |
553 |
Коллекция Addlns |
553 |
Свойства объекта Addln |
555 |
События объекта Addln |
557 |
Оптимизация производительности надстроек |
558 |
Скорость выполнения кода |
558 |
Размер файлов |
559 |
Содержание |
19 |
Особые проблемы, связанные с использованием надстроек |
559 |
Правильная установка |
559 |
Ссылки на другие файлы |
561 |
Указание правильной версии Excel |
561 |
Резюме |
562 |
ЧАСТЬVI.РАЗРАБОТКАПРИЛОЖЕНИЙ |
|
563 |
Глава 22. Создание собственных панелей инструментов |
|
564 |
О командных панелях |
|
564 |
Управление панелями инструментов |
|
565 |
Как Excel обрабатывает панели инструментов |
|
565 |
Хранение панелей инструментов |
|
565 |
Когда панели инструментов работают некорректно |
|
566 |
Ручное управление панелями инструментов и кнопками |
|
567 |
О режиме модификации командных панелей |
|
567 |
Распространение панелей инструментов |
|
570 |
Управление коллекцией CommandBars |
|
572 |
Типы командных панелей |
|
572 |
Просмотр списка объектов CommandBar |
|
573 |
Создание командной панели |
|
574 |
Ссылки на командные панели |
|
574 |
Удаление командных панелей |
|
575 |
Свойства командных панелей |
|
575 |
Ссылка на элементы управления командной панели |
|
580 |
Перечисление элементов управления на командной панели |
|
581 |
Перечисление элементов управления на всех панелях инструментов |
|
581 |
Добавление элементов управления на командную панель |
|
582 |
Удаление элемента управления из командной панели |
|
583 |
Свойства элементов управления командных панелей |
|
583 |
Резюме |
|
590 |
Глава 23. Создание пользовательских меню |
|
591 |
Несколько слов о строке меню Excel |
|
591 |
Операции с меню Excel |
|
592 |
Терминология |
|
592 |
Удаление элементов меню |
|
593 |
Добавление элементов меню |
|
594 |
Изменение опций меню |
|
594 |
Примеры кода VBA |
|
595 |
Вывод информации о меню |
|
595 |
Добавление нового меню в строку меню |
|
596 |
Удаление меню со строки меню |
|
598 |
Добавление опций в меню |
|
599 |
Отображение комбинации клавиш вместе с опцией меню |
|
602 |
Исправление восстановленного меню |
|
604 |
Работа с событиями |
|
604 |
Автоматическое добавление и удаление меню |
|
604 |
Отключение или скрытие меню |
|
605 |
Работа с установленными опциями меню |
|
606 |
Простой способ создания пользовательских меню |
|
609 |
Замена строки меню листа |
, |
611 |
Работа с контекстными меню |
|
612 |
20 |
|
Содержание |
Добавление опций в контекстное меню |
614 |
Удаление опций из контекстного меню |
615 |
Отключение опций контекстного меню |
615 |
Отключение контекстных меню |
615 |
Сброс контекстных меню |
616 |
Создание нового контекстного меню |
616 |
Резюме |
618 |
Глава 24. Предоставление справки в приложениях |
619 |
Справка в приложениях Excel |
619 |
Справочная система, построенная с помощью компонентов Excel |
621 |
Использование комментариев к ячейкам для предоставления справки |
621 |
Применение текстового поля для предоставления справки |
622 |
Использование рабочего листа для сохранения текста справочного руководства |
623 |
Отображение справочной информации в пользовательском диалоговом окне |
624 |
Использование помощника по Office для отображения справочного руководства |
626 |
Использование средств WinHelp System и HTML Help System |
629 |
WinHelp |
629 |
HTMLHelp |
630 |
Связывание файлов справочного руководства с приложением |
631 |
Другие способы отображения справочного руководства в формате WinHelp или |
|
HTML Help |
633 |
Использование метода Help |
633 |
Отображение справочной информации в окне сообщения |
633 |
Отображение справочной информации в окне ввода данных |
634 |
Резюме |
634 |
Глава 25. Разработка приложений для пользователей |
635 |
|
Определение приложения, ориентированного на пользователя |
635 |
|
Мастер расчета займа |
|
635 |
Использованиеприложения |
|
636 |
Структура рабочей книги |
|
637 |
Как это работает |
|
638 |
Потенциальные улучшения |
|
642 |
Концепции разработки приложений |
|
642 |
Заключение |
|
643 |
Резюме |
|
644 |
ЧАСТЬ VII. ДРУГИЕ ТЕМЫ |
|
645 |
Глава 26. Вопросы совместимости |
|
646 |
Что такое совместимость |
|
646 |
Проблемы совместимости |
|
647 |
Поддерживаемые форматы файлов Excel |
|
648 |
Избегайте использования новых возможностей |
649 |
|
Приложения, которые используют функции Windows API |
649 |
|
Поддержка платформы |
Мас |
650 |
Создание интернациональных |
приложений |
651 |
Многоязыковыеприложения |
|
653 |
Язык в |
VBA |
654 |
Использование "локальных" свойств |
|
654 |
Идентификация настроек системы |
|
654 |
Содержание |
|
21 |
Параметры настройки даты и времени |
656 |
Резюме |
657 |
Глава 27. Управление файлами с помощью VBA |
658 |
Часто выполняемые операции |
658 |
Команды VBA по управлению файлами |
659 |
Использование объекта FileSearch |
661 |
Поиск файлов, которые содержат определенный текст |
663 |
Использование объекта FileSystemObject |
663 |
Работа с текстовыми файлами |
665 |
Открытие текстового файла |
666 |
Чтение текстового файла |
666 |
Запись в текстовый файл |
667 |
Получение номера файла |
667 |
Определение или установка позиции в файле |
667 |
Операторы чтения и записи |
668 |
Примеры управления текстовыми файлами |
668 |
Импортирование данных из текстового файла |
668 |
Экспортирование диапазона в текстовый файл |
669 |
Импортирование текстового файла в диапазон |
670 |
Протоколирование операций в Excel |
671 |
Фильтрация текстового файла |
671 |
Импортирование более 256 столбцов данных |
672 |
Экспорт диапазона в формат HTML |
674 |
Резюме |
676 |
Глава 28. Управление компонентами Visual Basic |
677 |
|
||
|
Введение в |
IDE |
|
677 |
|
Объектная модель |
IDE |
|
678 |
|
Коллекция VBProjects |
|
|
679 |
|
Первый пример |
|
|
680 |
|
Замещение модуля обновленной версией |
|
681 |
|
|
Использование VBA для создания кода |
VBА |
|
683 |
|
Добавление элементов управления в диалоговое окно UserForm на этапе разработки |
|
685 |
|
|
Управление диалоговыми окнами UserForm на этапе разработки и на этапе выполнения |
686 |
||
|
Добавление 100 элементов управления CommandButton на этапе разработки |
|
687 |
|
|
Программное создание диалоговых окон UserForm |
|
688 |
|
|
Простой пример |
|
|
689 |
-, |
Сложный пример |
|
|
690 |
|
Резюме |
|
|
694 |
Глава 29. Принципы управления модулями классов |
695 |
Что такое модуль класса |
695 |
Пример: создание класса NumLock |
696 |
Вставка модуля класса |
696 |
Добавление кода VBA |
697 |
Использование класса NumLock |
698 |
Еще о модулях классов |
698 |
Именование класса объектов |
698 |
Программирование свойств |
698 |
Методы программирования |
700 |
События модуля класса |
700 |
Пример: класс CSVFile |
701 |
22 |
Содержан |
Переменные уровня модуля класса |
|
701 |
Процедуры свойств |
|
701 |
Процедуры методов |
|
702 |
Использование объекта CSVFileClass |
|
704 |
Резюме |
|
705 |
Глава 30. Часто задаваемые вопросы о программировании в Excel |
706 |
|
Общие вопросы об Excel |
|
707 |
Редактор Visual Basic |
|
711 |
Процедуры |
|
714 |
Функции |
|
718 |
Объекты, свойства, методы и события |
|
720 |
Пользовательские диалоговые окна |
|
728 |
Надстройки |
|
733 |
Объекты CommandBar |
|
735 |
Приложение А. Информационные ресурсы, посвященные Excel |
|
738 |
Техническая поддержка со стороны фирмы Microsoft |
|
738 |
Варианты поддержки |
|
738 |
Microsoft Knowledge Base |
|
739 |
Начальная страница Microsoft Excel |
|
739 |
Обновления Microsoft Office |
|
739 |
Группы новостей |
|
739 |
Группы новостей, посвященные электронным таблицам |
|
740 |
Конференции Microsoft |
|
740 |
Поиск в группах новостей |
|
741 |
Web-узлы |
|
742 |
Spreadsheet Page |
|
742 |
Web-узел Чипа Пирсона (Chip Pearson), посвященный Excel |
|
742 |
Web-узел Стивена Булина (Stephen Bullen), посвященный Excel |
|
742 |
Список часто задаваемых вопросов, касающихся электронных таблиц |
|
742 |
Приложение Б. Справочник по функциям и операторам VBA |
|
743 |
Приложение В. Коды ошибок VBA |
751 |
|
Приложение Г. Справочник но кодам ANSI |
755 |
|
Приложение Д. Материалы на Web-узле |
763 |
|
Обзор |
|
763 |
Примеры из глав |
|
763 |
Power Utility Рак |
|
773 |
Удаление Power Utility Рак |
|
773 |
Sound-Proof 2000 |
|
773 |
Удаление Sound-Proof 2000 |
|
774 |
Предметный указатель |
775 |
|
Содержание |
23 |
Об авторе
Джон Уокенбах (John Walkenbach) — известный автор книг, посвященных электронным таблицам; он также является главой компании JWalk and Associates, Inc. — небольшой консалтинговой фирмы, расположенной в Сан-Диего и специализирующейся в области разработки приложений электронных таблиц. Его перу принадлежит около 30 книг и 300 статей, посвященных электронным таблицам. Новые идеи Джона изложены в таких журналах, как PC World, InfoWorld, PC Magazine, Windows и PC/Computing. Он также является ответственным за публикацию страницы The Spreadsheet Page популярного Web-узла www.j-walk.com/ss/. Одно из наиболее значительных достижений Джона — это разработка надстройки Power Utility Pak, получившей приз корпорации Microsoft.
Джон Уокенбах окончил университет в штате Миссури: и защитил диссертацию на соискание ученой степени доктора философии в университете штата Монтана.
24 |
Об авторе |
Предисловие
Добро пожаловать в книгу Профессиональное программирование на VBA в Excel 2002!
Если вы, кроме всего прочего, разрабатываете электронные таблицы, предназначенные для других пользователей, или просто хотите взять от Excel максимум возможного, то вы приобрели именно то, что нужно.
Почему я написал эту книгу
По Excel написано немало серьезных книг. Однако данная книга является единственной, в которой разработка приложений электронных таблиц рассматривается в широком контексте. Дело в том, что VBA — всего лишь один из компонентов среды разработки пользовательских приложений (стоит заметить, что компонент этот очень существенный). А такой программный продукт, как Excel, отличается скрытыми возможностями. В нем есть много интересных возможностей, притаившихся в глубинах, неведомых простому пользователю. Кроме того, некоторые хорошо известные средства можно использовать по-новому.
Миллионы людей по всему миру работают с Excel. Я постоянно слежу за группами новостей, посвященных электронным таблицам, и пришел к выводу, что пользователи хотят получать (и оказывать) помощь именно по тем вопросам, которым посвящена эта книга. Мне кажется, что лишь немногие пользователи Excel действительно понимают, каковы истинные возможности этого программного продукта. В данной книге я попытаюсь ввести вас в эту элитную компанию. Вы готовы?
Что надо знать
Книга не предназначена для начинающих пользователей Excel. Если у вас нет опыта работы с этим приложением, то прочтите сначала какую-либо из следующих книг.
•Excel 2002 для "чайников" Грега Харвея— написана для пользователей, которые хотят знать ровно столько, чтобы сдать экзамен, или решили приступить к работе с этим программным продуктом.
•Excel 2002. Библия пользователя (вашего покорного слуги) подробно рассказывает обо всех возможностях Excel. Предназначена для пользователей всех уровней.
Чтобы получить от настоящей книги максимум возможного, необходимо быть достаточно опытным пользователем Excel. Я не тратил много времени на описание того, как выполняются простые операции. Предполагается, что вы умеете следующее:
•создавать рабочие книги, вставлять листы, сохранять файлы и т.д.;
•перемещаться по рабочей книге;
•пользоваться меню и комбинациями клавиш;
•управлять панелями инструментов Excel;
Предисловие |
25 |
•использовать функции рабочих листов Excel;
•давать имена ячейкам и диапазонам;
•применять основные возможности Windows, такие, например, как буфер обмена и приемы управления файлами.
Если вы не знаете, как все это делать, то, возможно, некоторая информация окажется для вас довольно сложной. Итак, считайте, что вис предупредили. Если же вы опытный пользователь электронных таблиц, но еще не работали с Excel 2002, то краткий обзор возможностей этого продукта можно найти в главе 2.
Что надо иметь
Для эффективной работы с книгой необходимо иметь копию Excel. Несмотря на то, что данное издание посвящено Excel 2002, большинство изложенной информации также относится к Excel 2000 и Excel 97. Если же вы пользуетесь еще более ранней версией Excel, то эта книга точно не для вас. Кроме того, материал книги, в основном, применим также и к Excel для Macintosh. Впрочем, испытания на совместимость с версией для Мас я не проводил и оставляю это для вас.
Достаточно иметь компьютерную систему, на основе платформы Windows, но лучше иметь компьютер на базе процессора Pentium Ш/4 и с большим количеством памяти. Excel — это сложная программа, и использование ее в низкопроизводительной системе или в системе с небольшим объемом памяти не принесет вам радости в работе.
Рекомендую использовать высокое разрешение экрана (800x600 — достаточно, 1 024x768 — прекрасно, а 1 бООх 1 024 — это "выше крыши"). В крайнем случае, подойдет и стандартное разрешение 640x480.
Соглашения, используемые в этой книге
Уделите лишнюю минуту, чтобы просмотреть этот раздел, и узнайте о некоторых соглашениях, которые используются по всей книге.
Соглашения, относящиеся к клавиатуре
Для ввода данных вам нужна клавиатура. Кроме того, работать с меню и диалоговыми окнами можно с помощью клавиатуры.
Ввод
Все, что вводится с клавиатуры, отображается полужирным шрифтом, например, "введите
=СУММ(В2:В50) в ячейку В51".
Длинное вводимое значение располагается в отдельной строке и для него используется моноширинный шрифт. Например, вы можете получить указание ввести следующую формулу. =(СРЗНАЧ(А1:А8)+СРЗНАЧ(В1:В8))/25
Код VBA
В этой книге вы будете сталкиваться с фрагментами кода VBA, а также полными листингами процедур. В каждом листинге используется моноширинный шрифт; а каждая строка кода занимает в тексте книги отдельную строку. Чтобы код было легче читать, используются
26 |
Предисловие |
отступы, заданные с помощью символов табуляции. Конечно, задавать отступы не обязательно, но они помогают отделять друг от друга операторы, находящиеся рядом.
Если строка кода не помещается в одной строке книги, то используется стандартный для VBA метод продолжения строки: в конце строки вводится пробел, после которого располагается символ подчеркивания. Это означает, что данная строка кода продолжается следующим фрагментом. Например, приведенные ниже две строки текста представляют одну строку кода.
If |
Right(ActiveCell, |
1) = "!" Then |
ActiveCell |
= |
Left(ActiveCell, |
Len(ActiveCell) |
- 1) |
Этот код можно ввести или так, как показано, то есть в двух строках, или в одной, не используя символа подчеркивания.
Функции, имена файлов и именованные диапазоны
Для отображения функций рабочих листов Excel используется верхний регистр моноширинного шрифта, например, "В ячейку С2 0 введите формулу СУММ". Имена, свойства, методы и объекты процедур VBA отображаются моноширинным шрифтом: "Выполните процедуру G e t T o t a l s " . В таких именах, чтобы они легче читались, нередко одновременно используется и нижний, и верхний регистр.
Соглашения, относящиеся к мыши
Если вы читаете эту книгу, то, значит, хорошо знаете, как пользоваться мышью. Вся "мышиная" терминология является достаточно стандартной: "указание", "щелчок", "щелчок правой кнопкой", "перетаскивание" и т.д.
Что означают пиктограммы
Повсеместно в книге слева от абзацев можно встретить пиктограммы. Они используются длятого, чтобы привлечь ваше внимание к особо важной информации.
Данная пиктограмма используется для того, чтобы показать— обсуждаемый материал является новым и появился вместе с Excel 2002. И если вы разрабатываете приложение, которое должно использоваться в более ранних версиях Excel,тообращайтенаэти пиктограммы особоевнимание.
Я пользуюсь этой пиктограммой с целью отметить важность принципа, который поможет вам легко справиться с задачей, или понять информацию, которая описываетследующийматериал.
Эти пиктограммы указывают на более эффективный способ выполнить что-либо илинаприем, который,возможно, неявляетсяочевидным.
Пиктограмма, используемая для описания операции, которую следует выполнять осторожно, чтобы избежать возможных проблем.
Эта пиктограмма используется для того, чтобы предоставить ссылки на другие главы, гдео том или ином предмете говорится более подробно.
Предисловие |
27 |
Структура книги
Главы данной книги сгруппированы в семь основных частей. Дополнительная информация приводится в нескольких приложениях.
Часть I
В этой части представлены основы изучаемой программы. В главе 1 излагается краткая история электронных таблиц — таким образом, вы сможете определить место Excel в мире программного обеспечения. В главе 2 изложен концептуальный анализ Excel 2002 — достаточно полезный для тех опытных пользователей электронных таблиц, которые переходят к использованию Excel. Что же касается главы 3, то в ней вкратце рассматриваются формулы, кроме того, рассказывается о некоторых новых приемах. В главе 4 отмечены достоинства и недостатки разных форматов файлов, поддерживаемых и создаваемых в Excel.
Часть II
Данная часть состоит из двух глав. В главе 5 в общих чертах обсуждается тема создания приложения электронных таблиц. Глава 6, посвящена более глубокому изучению вопроса, в ней представлены типичные действия по разработке приложений электронных таблиц.
Часть III
В эту часть входят главы с 7 по 11. В ней речь пойдет о подготовке к изучению VBA. Вы ознакомитесь с VBA, с основами программирования и более подробно — с разработкой процедур и функций VBA. Глава 11 предлагает рассмотреть полезные примеры использования VBA для решения ежедневных задач.
Часть IV
В четырех главах этой части речь идет о пользовательских диалоговых окнах (называемых также пользовательскими формами UserForm). В главе 12 описываются альтернативные методы создания пользовательских форм. О пользовательских формах и различных элементах управления, используемых при создании этих форм, рассказывается в главе 13. В главах 14 и 15 приведены примеры пользовательских диалоговых окон, начиная от простых и заканчивая достаточно сложными.
Часть V
В этой части рассматриваются дополнительные методы программирования, которые на первый взгляд невероятно сложные для понимания. В первых трех главах говорится о том, как создавать утилиты и как использовать VBA для работы со сводными таблицами и диаграммами. В главе 19 рассказывается о процессе обработки событий, который позволяет выполнять процедуры автоматически, причем выполнять именно тогда, когда произойдут определенные события. В главе 20 речь идет о способах взаимодействия с другими приложениями (такими, например, как Word). Часть V заканчивается главой 21 где подробно обсуждается вопрос создания надстроек.
Часть VI
Главы этой части посвящены важным этапам создания приложений, ориентированных на конечных пользователей. В главах 22 и 23 речь идет о создании пользовательских меню и пане-
28 |
Предис |