Книги для изучения Excel и VBA. Эксель вба


Excel для всех | Excel

навигация
  • Главная
    • Мои программы
      • Ошибка - "Component COMDLG32.OCX..."
      • Управление безопасностью макросов
      • Подключение/отключение надстроек
      • Копирование модулей и форм
    • Мои надстройки
      • Выделение строки и столбца при выделении ячейки
      • Надстройка для суммирования ячеек по цвету заливки или шрифта
      • Подсчет и сумма FiFo и LiFo
      • Замена и перемещение аббревиатур
      • Работа с колонтитулами
      • Панель иконок FaceID
      • Замена УФ обычным
      • Сменить стиль ссылок
      • Список листов книги
    • Плагины
    • Функции Excel
      • Функции баз данных
      • Функции даты и времени
      • Инженерные функции
      • Финансовые функции
      • Проверка свойств и значений
      • Логические функции
      • Ссылки и массивы
      • Математические функции
      • Статистические функции
      • Текстовые функции
    • Функции VBA
      • Работа с массивами
      • Заменители синтаксических конструкций
      • Дата и время
      • Работа с текстом
      • Работы с числами
      • Файловые функции
      • Прочие
    • Книги
    • Ссылки
    • Использование материалов сайта
  • Хитрости
  • Тренинги
    • Азы Excel
    • РАБОТА С ТАБЛИЦАМИ
    • УВЕРЕННЫЙ ПОЛЬЗОВАТЕЛЬ
    • РАБОТА В POWER QUERY
    • ФОРМУЛЫ МАССИВА
    • VBA – НАЧАЛЬНЫЙ КУРС
    • ПРОГРАММИРОВАНИЕ В VBA
  • MulTEx
    • Список команд MulTEx
    • Приобретение MulTEx
    • Часто задаваемые вопросы
  • Разработка
    • Выполненные проекты
  • Форум
  • Блог
  • Контакты

Вход/Регистрация

  • Отправляйте письма по своим спискам рассылок в два клика!
  • Наш опыт - залог Вашего успеха! Обучающие тренинги в Excel
  • Курс валют от центробанка на любую дату
  • Суммировать данные по условию со всех листов книги

www.excel-vba.ru

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

Главная » 10 Май 2011       Дмитрий       165103 просмотров

 

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

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

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

Скачать

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

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

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

Скачать

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

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

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

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

Office 2007. Самоучитель - Если Вы решили поближе познакомиться с интерфейсом и основными возможностями приложений Microsoft Office, то советую почитать данную книгу. В ней описано все необходимое для успешной

www.excel-vba.ru

VBA в Excel

VBA в Excel

VBA в Excel

Программирование в Excel с помощью VBA.

Язык VBA позволяет писать макросы в Excel. Как это делать рассматривается ниже.

Application

Application – это объект, занимающий вершину иерархии объектов в Excel. Application – это и есть Excel. Вот примеры использования Application:

окно нормальных размеров

Application.WindowState = xlNormal

окно максимальных размеров

Application.WindowState = xlMaximized

Workbooks

Workbooks – это коллекция рабочих книг, которые открыты. Каждая рабочая книга представлена объектом Workbook. Узнать сколько рабочих книг сейчас в коллекции можно так:

Dim bookCount As IntegerbookCount = Workbooks.CountMsgBox ("Opened books = " & bookCount)

Обатиться к нужной рабочей книге в коллекции Workbooks можно обратиться по его номеру или по имени:

Workbooks.Item(2).Activate

здесь мы активизировали второй элемент коллекции Workbooks.

Другие примеры мы увидим ниже.

Workbook

Workbook – это рабочая книга.

Сохранить рабочую книгу:

Workbooks.Item(1).Save

И где же в этом примере рабочая книга Workbook? Здесь: Workbooks.Item(1), это выражение возвращает первый элемент коллекции Workbooks, а это и есть Workbook.

Закрыть рабочую книгу:

Workbooks.Item(1).Close

Sheets

Sheets – это все листы рабочей книги. Листы рабочей книги представлены двумя типами: рабочие листы – это обычные листы Excel и второй тип – это листы диаграмм. Те и другие и составляют коллекцию Sheets.

Charts

Charts – это только диаграммы рабочей книги.

Chart

Chart – это объект, представляющий одину диаграмму. Если диаграмма содержится в обычном рабочем листе, то она объектом Chart не является.

Worksheets

Worksheets – это только рабочие листы рабочей книги.

Добавим рабочий лист в коллекцию Worksheets:

Worksheets.Add

Worksheet

Worksheet – это один лист рабочей книги Excel.

Все ячейки рабочего листа Worksheet:

Worksheets("Лист1").Cells

Range. Работа с ячейками в Excel

Range – это одна ячейка листа или несколько ячеек. Этот объект рассмотрим подробнее. Установим кнопку на рабочий лист Excel. Откройте панель инструментов «Элементы управления» (правой кнопкой по свободному полю панели инструментов и выбираем из выпавшего меню). В этой панели выбираем кнопку и устанавливаем её на свободное место рабочего листа, в его правой части. Правой кнопкой мыши по нашей кнопке - > Свойства. Установите значение свойства Name – CommandButton, а свойства Caption - Range Test.

Получаем:

Закройте окно свойств кнопки, и кликаем по нашей кнопке правой кнопкой мыши, из выпавшего меню выбираем «Исходный текст». Открывается окно редактора VBA, оно называется Microsoft Visual Basic. В нём уже есть заготовка обработчика нажатия на кнопку CommandButton:

Private Sub CommandButton_Click()

End Sub

Кстати, помотрите на эту заготовку, ключевое слово Sub говорит, что это процедура, а слово Private указывает, что эта процедура видна лишь в данном модуле.

Всё у нас готово для начала изучения работы с ячейками рабочего листа Excel.

Как задать активную ячейку?

Сделаем активной ячейку A2:A2:

Private Sub CommandButton_Click()    Range("A2:A2").ActivateEnd Sub

Далее сохраняем, далее Debug - > Compile VBA Project. Если нет ошибок, то запускаем нашу программу: Run - > Run Sub/UserForm.

Получаем:

Выделим любую другую ячейу и нажимём на кнопку Range Test. Вновь выделится ячейка «А2». Это значит, что обработчик нажатия на кнопку работает исправно.

Как выделить ряд ячеек?

Выделим интервал ячеек «A2:D2». Вносим в нашу заготовку макроса новый код:

Private Sub CommandButton_Click()    Range("A2:D2").SelectEnd Sub

Далее сохраняем, далее Debug - > Compile VBA Project. Переходим на рабочий лист Excel и жмем на кнопку Range Test.

Получаем:

Как установить значение в ячейку?

Внесем число 123 в ячейку "A2:A2" для этого изменим код макроса так:

Private Sub CommandButton_Click()    Range("A2:A2").Value = 123End Sub

Далее сохраняем, далее Debug - > Compile VBA Project. Переходим на рабочий лист Excel и жмем на кнопку Range Test.

Получаем:

Это результат работы.

www.sbp-program.ru

VBA Excel. Цикл For Each... Next

Цикл For Each... Next в VBA Excel, его синтаксис и описание отдельных компонентов. Примеры использования цикла For Each... Next.

Цикл For Each... Next в VBA Excel предназначен для выполнения блока операторов по отношению к каждому элементу из группы элементов (диапазон, массив, коллекция). Этот замечательный цикл применяется, когда неизвестно количество элементов в группе и их индексация, в противном случае, более предпочтительным считается использование цикла For...Next.

  1. Синтаксис цикла For Each... Next
  2. Компоненты цикла For Each... Next
  3. Примеры циклов For Each... Next

Синтаксис цикла For Each... Next

For Each element In group [ statements ] [ Exit For ] [ statements ] Next [ element ]

В квадратных скобках указаны необязательные атрибуты цикла For Each... Next.

Компоненты цикла For Each... Next

Компонент Описание
element Обязательный атрибут в операторе For Each, необязательный атрибут в операторе Next.  Представляет из себя переменную, используемую для циклического прохода элементов группы (диапазон, массив, коллекция), которая предварительно должна быть объявлена с соответствующим типом данных*.
group Обязательный атрибут. Группа элементов (диапазон, массив, коллекция), по каждому элементу которой последовательно проходит цикл For Each... Next.
statements Необязательный** атрибут. Операторы вашего кода.
Exit For Необязательный атрибут. Оператор выхода из цикла до его окончания.

*Если цикл For Each... Next используется в VBA Excel для прохождения элементов коллекции (объект Collection) или массива, тогда переменная element должна быть объявлена с типом данных Variant, иначе цикл работать не будет.

**Если не использовать в цикле свой код, смысл применения цикла теряется.

Примеры циклов For Each... Next

Цикл для диапазона ячеек

На активном листе рабочей книги Excel выделите диапазон ячеек и запустите на выполнение следующую процедуру:

Sub test1() Dim element As Range, a As String a = "Данные, полученные с помощью цикла For Each... Next:" For Each element In Selection a = a & vbNewLine & "Ячейка " & element.Address & _ " содержит значение: " & CStr(element.Value) Next MsgBox a End Sub

Информационное окно MsgBox выведет адреса выделенных ячеек и их содержимое, если оно есть. Если будет выбрано много ячеек, то полностью информация по всем ячейкам выведена не будет, так как максимальная длина параметра Prompt функции MsgBox составляет примерно 1024 знака.

Цикл для коллекции листов

Скопируйте следующую процедуру в стандартный модуль книги Excel:

Sub test2() Dim element As Worksheet, a As String a = "Список листов, содержащихся в этой книге:" For Each element In Worksheets a = a & vbNewLine & element.Index _ & ") " & element.Name Next MsgBox a End Sub

Информационное окно MsgBox выведет список наименований всех листов рабочей книги Excel по порядковому номеру их ярлычков, соответствующих их индексам.

Цикл для массива

Присвоим массиву список наименований животных и в цикле For Each... Next запишем их в переменную a. Информационное окно MsgBox выведет список наименований животных из переменной a.

Sub test3() Dim element As Variant, a As String, group As Variant group = Array("бегемот", "слон", "кенгуру", "тигр", "мышь") 'или можно присвоить массиву значения диапазона ячеек 'рабочего листа, например, выбранного: group = Selection a = "Массив содержит следующие значения:" & vbNewLine For Each element In group a = a & vbNewLine & element Next MsgBox a End Sub

Повторим ту же процедуру, но всем элементам массива в цикле For Each... Next присвоим значение «Попугай». Информационное окно MsgBox выведет список наименований животных, состоящий только из попугаев, что доказывает возможность редактирования значений элементов массива в цикле For Each... Next.

Sub test4() Dim element As Variant, a As String, group As Variant group = Array("бегемот", "слон", "кенгуру", "тигр", "мышь") 'или можно присвоить массиву значения диапазона ячеек 'рабочего листа, например, выделенного: group = Selection a = "Массив содержит следующие значения:" & vbNewLine For Each element In group element = "Попугай" a = a & vbNewLine & element Next MsgBox a End Sub

Этот код, как и все остальные в этой статье, тестировался в Excel 2016.

Цикл для коллекции подкаталогов и выход из цикла

В этом примере мы будем добавлять в переменную a названия подкаталогов на диске C вашего компьютера. Когда цикл дойдет до папки Program Files, он добавит в переменную a ее название и сообщение: «Хватит, дальше читать не буду! С уважением, Ваш цикл For Each... Next.».

Sub test5() Dim FSO As Object, myFolders As Object, myFolder As Object, a As String 'Создаем новый FileSystemObject и присваиваем его переменной "FSO" Set FSO = CreateObject("Scripting.FileSystemObject") 'Извлекаем список подкаталогов на диске "C" и присваиваем 'его переменной "myFolders" Set myFolders = FSO.GetFolder("C:\") a = "Папки на диске C:" & vbNewLine 'Проходим циклом по списку подкаталогов и добавляем в переменную "a" 'их имена, дойдя до папки "Program Files", выходим из цикла For Each myFolder In myFolders.SubFolders a = a & vbNewLine & myFolder.Name If myFolder.Name = "Program Files" Then a = a & vbNewLine & vbNewLine & "Хватит, дальше читать не буду!" _ & vbNewLine & vbNewLine & "С уважением," & vbNewLine & _ "Ваш цикл For Each... Next." Exit For End If Next Set FSO = Nothing MsgBox a End Sub

Информационное окно MsgBox выведет список наименований подкаталогов на диске C вашего компьютера до папки Program Files включительно и сообщение цикла о прекращении своей работы.

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

vremya-ne-zhdet.ru

Файловые функции VBA | Excel для всех

Вход/Регистрация

Главная » Функции VBA » 28 Апрель 2011       Дмитрий       53144 просмотров
  • CurDir() - функция, которая возвращает путь к каталогу(для указанного диска), в котором по умолчанию будут сохраняться файлы:
    Dim sCurDir As String sCurDir = CurDir("D")

    Dim sCurDir As String sCurDir = CurDir("D")

  • Dir() — позволяет искать файл или каталог по указанному пути на диске. Пример использования можно посмотреть в статье: Просмотреть все файлы в папке
  • EOF() — при операции записи в файл на диске эта функция вернет True, если вы находитесь в конце файла. Обычно используется при работе с текстовыми файлами — .txt. При сохранении книг Excel лучше использовать стандартные методы: Save и SaveAs.
  • Error() - позволяет вернуть описание ошибки по ее номеру. Генерировать ошибку нужно при помощи метода RaiseError() специального объекта Er.
  • Print - записывает в открытый файл указанный текст. Далее будет приведен пример использования данной функции
  • FreeFile() — позволяет определить номер следующего свободного файла, который можно использовать как номер файла при его открытии методом Open. Предпочтительно применять именно этот метод определения номера файла(вместо статичного #1), чтобы не было неоднозначности обращения к файлам. Ниже приведены примеры применения данной функции при обращении к файлам
  • FileAttr() — позволяет определить, как именно был открыт файл в файловой системе: на чтение, запись, добавление, в двоичном или текстовом режиме и т.п. Применяется для работы с текстовыми файлами, открытыми при помощи Open "C:\Text1.txt" For [] As #1Открыть файл можно несколькими способами, приведу примеры наиболее распространенных вариантов:
    • Input() — открывает текстовый файл на чтение. Т.е. таким методом можно открыть файл и вытянуть из него данные. Например, чтобы считать информацию из файла C:Text1.txt и вывести ее в окно Immediate можно применить такой код:
      Dim MyChar Open "C:\Text1.txt" For

www.excel-vba.ru

VBA Excel - Хитрости работы с Excel – таблицы, функции, формулы, списки, рабочие книги, макросы

VBA – это серьезно упрощенная версия языка Visual Basic, которая была встроена в продукты Майкрософт (включая версии программ для операционной системы Макинтош). в частности, встроена VBA в Excel. Реализация языка Basic позволяет значительно расширить функциональность макроязыков, использующихся в Экзель.

Несомненные достоинства VBA в Excel возможность быстрого овладения принципами работы с языком. Приложения VBA Excel могут создавать даже обычные пользователи. Однако, автономный код на данном языке создать не удастся, равно как и не удастся закрыть код, защитив от случайно внесенных изменений.

Применяется VBA в Excel, начиная с версии программы 5. VBA в Excel – самый простой путь, как автоматизировать определенную последовательность действий, что позволяет значительно экономить время работы предприятия. Производится запись макроса с помощью макрорекордера Екзель(или макрос пишется вручную) и затем данный язык делает всю работу за Вас.

Чтобы активировать редактор VBA Excel, вам потребуется зайти в Сервисы, там найти Макросы и там – редактор Visual Basic (или воспользоваться горячими клавишами Alt+F11). В левой части открывшегося редактора находятся два окна – Свойства и Проект. В последнем расположено содержимое нынешнего проекта VBA в Excel. Открываем модуль (элемент данного языка), содержащий макросы: в Проекте открываем папку Модули(кликаем на плюсе слева от папки) и выбираем нужный нам модуль.

В списке объектов находятся объекты для данного элемента, к работе с которым Вы приступили. В окне Список процедур будет показан ряд функций и процедур, входящих в модуль.

Если же ранее написанного макроса нет, выполняйте Вставку => Модуль.

Чтобы записать командный макрос, курсор ставим в часть модуля, откуда будет идти запись макроса. Для начала макроса вводим слово Sub с пробелом и название самого макроса. Использования символов, кроме букв, цифр и андерлайна в названии макроса не употребляется. Затем нужно вводить операторы  VBA Excel.

www.teachexcel.ru