
- •Глава 1. Макросы Запуск макроса с поиском ячейки
- •Запуск макроса при открытии книги
- •Запуск макроса при вводе в ячейку «2»
- •Запуск макроса при нажатии «Ентер»
- •Добавить в панель свою вкладку «Надстройки» (Формат ячейки)
- •Глава 2. Работа с файлами (т.Е.Обмен данными с тхт, rtf, xls и т.Д.) Проверка наличия файла по указанному пути_1
- •Проверка наличия файла по указанному пути_2
- •Проверка наличия файла по указанному пути_3
- •Поиск нужного файла_1
- •Поиск нужного файла_2
- •Поиск нужного файла_3
- •Обработка нескольких текстовых файлов
- •Экспорт данных в txt
- •Экспорт данных в html
- •Импорт данных, для которых нужно более 256 столбцов
- •Создание резервных копий ценных файлов
- •Подсчет количества открытий файла
- •Вывод пути к файлу в активную ячейку
- •Копирование содержимого файла rtf в эксель
- •Копирование данных из закрытой книги
- •Извлечение данных из закрытого файла
- •Поиск слова в файлах
- •Создание текстового файла и ввод текста в файл
- •Создание текстового файла и ввод текста (определение конца файла)
- •Создание документов Word на основе таблицы Excel
- •Посмотреть все файлы в каталоге_3
- •Быстрое размножение рабочей книги
- •Сортировка листов
- •Поиск максимального значения на всех листах книги
- •Рабочий лист Проверка наличия защиты рабочего листа
- •Список отсортированных листов
- •Создать новый лист_1
- •Создать новый лист_2
- •Удаление листов в зависимости от даты
- •Существует ли лист_2
- •Вывод количества листов в активной книге
- •Вывод количества листов в активной книге в виде гиперссылок
- •Подсчет количества ячеек, содержащих указанные значения_1
- •Подсчет количества ячеек в диапазоне, содержащих указанные значения_2
- •Подсчет количества видимых ячеек в диапазоне
- •Определение количества ячеек в диапазоне и суммы их значений
- •Подсчет количества ячеек
- •Автоматический пересчет данных таблицы при изменении ее значений
- •Ввод данных в ячейки
- •Ввод данных с использованием формул
- •Последовательный ввод данных
- •Ввод текстоввых данных в ячейки
- •Вывод в ячейки названия книги, листа и количества листов
- •Удаление пустых строк_1
- •Удаление пустых строк_2
- •Удаление пустых строк_3
- •Удаление строки по условию
- •Выделение ячеек через интервал_2
- •Выделение нескольких диапазонов
- •Движение по ячейкам
- •Поиск ближайшей пустой ячейки столбца
- •Поиск максимального значения
- •Поиск и замена по шаблону
- •Поиск значения с отображением результата в отдельном окне
- •Поиск с выделением найденных данных_1
- •Поиск с выделением найденных данных_2
- •Поиск по условию в диапазоне
- •Поиск последней непустой ячейки диапазона
- •Поиск последней непустой ячейки столбца
- •Поиск последней непустой ячейки строки
- •Поиск ячейки синего цвета в диапазоне
- •Поиск отрицательного значения в диапазоне и выделения синим цветом
- •Поиск наличия значения в столбце
- •Поиск совпадений в диапазоне
- •Поиск ячейки в диапазоне_1
- •Поиск ячейки в диапазоне_2
- •Заполнение через интервал(массив)
- •Заполнение указанного диапазона(массив)
- •Заполнение диапазона(массив)
- •Расчет суммы первых значений диапазона
- •Размещение в ячейке электронных часов
- •«Будильник»
- •Оформление верхней и нижней границ диапазона
- •Вывод адреса конца диапазона
- •Получение информации о выделенном диапазоне
- •Деление диапазона на 100
- •Возведение каждой ячейки диапазона в квадрат
- •Суммирование данных только видимых ячеек
- •Сумма ячеек с числовыми значениями
- •При суммировании — курсор внутри диапазона
- •Начисление процентов в зависимости от суммы_1
- •Начисление процентов в зависимости от суммы_2
- •Начисление процентов в зависимости от суммы_3
- •Сводный пример расчета комиссионного вознаграждения
- •Движение по диапазону
- •Объединение данных диапазона
- •Объединение данных диапазона_2
- •Узнать максимальную колонку или строку.
- •Ограничение возможных значений диапазона
- •Тестирование скорости чтения и записи диапазонов
- •Глава 4. Работа с примечаниями Вывод на экран всех примечаний рабочего листа
- •Функция извлечения комментария
- •Список примечаний защищенных листов
- •Перечень примечаний в отдельном списке_1
- •Перечень примечаний в отдельном списке_2
- •Перечень примечаний в отдельном списке_3
- •Подсчет количества примечаний_1
- •Перенос значений из ячейки в комментарий_1
- •Перенос значений из ячейки в комментарий_2
- •Панель с двумя кнопками
- •Создание панели справа
- •Вызов предварительного просмотра
- •Создание пользовательского меню (вариант 1)
- •Создание пользовательского меню (вариант 2)
- •Создание пользовательского меню (вариант 3)
- •Создание пользовательского меню (вариант 4)
- •Создание пользовательского меню (вариант 5)
- •Создание пользовательского меню (вариант 6)
- •Создание списка пунктов главного меню Excel
- •Создание списка пунктов контекстных меню
- •Отображение панели инструментов при определенном условии
- •Скрытие и отображение панелей инструментов
- •Создать подсказку к моим кнопкам
- •Создание меню на основе данных рабочего листа
- •Создание контекстного меню
- •Блокировка контекстного меню
- •Добавление команды в меню Сервис
- •Добавление команды в меню Вид
- •Создание панели со списком
- •Мультфильм с помощником в главной роли
- •Дополнение помощника текстом, заголовком, кнопкой и значком
- •Новые параметры помощника
- •Использование помощника для выбора цвета заливки
- •Глава . Диалоговые окна Функция inputbox (через ввод значения)
- •Вызов предварительного просмотра
- •Настройка ввода данных в диалоговом окне
- •Выбор из текста всех чисел
- •Прописная буква только в начале текста
- •Подсчет количества повторов искомого текста
- •Выделение из текста произвольного элемента
- •Отображение текста «задом наперед»
- •Англоязычный текст — заглавными буквами
- •Запуск таблицы символов из Excel
- •Глава информация о пользователе, компьютере, принтере и т.Д. Получить имя пользователя
- •Вывод разрешения монитора
- •Получение информации об используемом принтере
- •Просмотр информации о дисках компьютера
- •Глава . Юзерформы
- •Глава . Диаграммы Построение диаграммы с помощью макроса
- •Сохранение диаграммы в отдельном файле
- •Построение и удаление диаграммы нажатием одной кнопки
- •Вывод списка диаграмм в отдельном окне
- •Применение случайной цветовой палитры
- •Эффект прозрачности диаграммы
- •Построение диаграммы на основе данных нескольких рабочих листов
- •Создание подписей к данным диаграммы
- •ГлаВа . Разные программы. Программа для составления кроссвордов
- •Создать обложку dvd
- •Игра «Минное поле»
- •Игра «Угадай животное»
- •Расчет на основании ячеек определенного цвета
- •Глава .Другие функции и макросы Вызов функциональных клавиш
- •Расчет среднего арифметического значения
- •Перевод чисел в «деньги»
- •Поиск ближайшего понедельника
- •Подсчет количества полных лет
- •Расчет средневзвешенного значения
- •Преобразование номера месяца в его название
- •Использование относительных ссылок
- •Преобразование таблицы Excel в html-формат
- •Генератор случайных чисел
- •Случайные числа — на основании диапазона
- •Создание бегущей картинки
- •Вращающиеся автофигуры
- •Вызов таблицы цветов
- •Создание калькулятора
- •Склонение фамилии, имени и отчества
- •Глава . Дата и время Вывод даты и времени_1
- •Вывод даты и времени_2
- •Получение системной даты
- •Извлечение даты и часов
- •Функция ДатаПолная
Запуск макроса с поиском ячейки 6
Запуск макроса при открытии книги 6
Запуск макроса при вводе в ячейку «2» 7
Запуск макроса при нажатии «Ентер» 7
Проверка наличия файла по указанному пути_1 9
Проверка наличия файла по указанному пути_2 9
Проверка наличия файла по указанному пути_3 9
Поиск нужного файла_1 10
Поиск нужного файла_2 11
Поиск нужного файла_3 11
Поиск нужного файла_4 11
Автоматизация удаления файлов 11
Произвольный текст в строке состояния 12
Восстановление строки состояния 12
Бегущая строка в строке состояния 12
Быстрое изменение заголовка окна 12
Быстрое изменение заголовка окна_2 12
Изменение заголовка окна (со скрытием названия файла) 12
Возврат к первоначальному заголовку 13
Что открыто в данный момент 13
Работа с текстовыми файлами 13
Запись и чтение текстового файла 13
Обработка нескольких текстовых файлов 14
Определение конца строки текстового файла 15
Копирование из текстового файла в эксель 15
Копирование содержимого в текстовый файл_1 16
Копирование содержимого в текстовый файл_2 16
Экспорт данных в txt 16
Экспорт данных в html 18
Импорт данных, для которых нужно более 256 столбцов 20
Создание резервных копий ценных файлов 23
Подсчет количества открытий файла 23
Вывод пути к файлу в активную ячейку 24
Копирование содержимого файла RTF в эксель 24
Копирование данных из закрытой книги 25
Извлечение данных из закрытого файла 25
Поиск слова в файлах 25
Создание текстового файла и ввод текста в файл 27
Создание текстового файла и ввод текста (определение конца файла) 27
Создание документов Word на основе таблицы Excel 28
Команды создания и удаления каталогов 30
Получение текущего каталога 30
Смена каталога 30
Посмотреть все файлы в каталоге_1 30
Посмотреть все файлы в каталоге_2 30
Посмотреть все файлы в каталоге_3 33
Открытие книги (или текстовых файлов) 36
Открытие книги и добавление в ячейку А1 текста 36
Сколько книг открыто 36
Закрытие всех книг 36
Создать книгу 37
Проверка наличия защиты рабочего листа 41
Список отсортированных листов 41
Создать новый лист_1 42
Создать новый лист_2 43
Удаление листов в зависимости от даты 43
Копирование листа в книге 43
Копирование листа в новую книгу (создается) 44
Перемещение листа в книге 44
Перемещение нескольких листов в новую книгу 44
Заменить существующий файл 44
«Перелистывание» книги 44
Вставка колонтитула с именем книги, листа и текущей датой 44
Существует ли лист 45
Существует ли лист_2 45
Вывод количества листов в активной книге 45
Вывод количества листов в активной книге в виде гиперссылок 46
Вывод имен активных листов по очереди 46
Вывод имени и номеров листов текущей книги 46
Сделать лист невидимым 46
Сколько страниц на всех листах? 47
Ячейка и диапазон (столбцы и строки) 47
Копирование строк на другой лист 47
Копирование столбцов на другой лист 47
Подсчет количества ячеек в диапазоне, содержащих указанные значения_2 48
Подсчет количества видимых ячеек в диапазоне 48
Определение количества ячеек в диапазоне и суммы их значений 49
Подсчет количества ячеек 49
Автоматический пересчет данных таблицы при изменении ее значений 49
Ввод данных в ячейки 50
Ввод данных с использованием формул 51
Последовательный ввод данных 51
Ввод текстоввых данных в ячейки 51
Вывод в ячейки названия книги, листа и количества листов 52
Удаление пустых строк_1 52
Удаление пустых строк_2 52
Удаление пустых строк_3 53
Удаление скрытых строк 54
Удаление дубликатов по маске 54
Движение по ячейкам 58
Расчет суммы первых значений диапазона 69
Умножение выделенного диапазона на 2 75
Одновременное умножение всех данных диапазона 75
Мигание ячейки 87
Вывод на экран всех примечаний рабочего листа 88
Функция извлечения комментария 89
Список примечаний защищенных листов 89
Перечень примечаний в отдельном списке_1 90
Перечень примечаний в отдельном списке_2 90
Перечень примечаний в отдельном списке_3 91
Подсчет количества примечаний_1 92
Подсчет количества примечаний_2 92
Подсчет примечаний_3 92
Выделение ячеек с примечаниями 93
Отображение всех примечаний 93
Изменение цвета примечаний 93
Добавление примечаний 93
Перенос комментария в ячейку и обратно 94
Перенос значений из ячейки в комментарий_1 95
Перенос значений из ячейки в комментарий_2 95
Дополнение панели инструментов 96
Добавление кнопки на панель инструментов 96
Панель с одной кнопкой 97
Панель с двумя кнопками 97
Создание панели справа 97
Вызов предварительного просмотра 98
Создание пользовательского меню (вариант 1) 98
Создание пользовательского меню (вариант 2) 99
Создание пользовательского меню (вариант 3) 99
Создание пользовательского меню (вариант 4) 100
Создание пользовательского меню (вариант 5) 100
Создание пользовательского меню (вариант 6) 103
Создание списка пунктов главного меню Excel 105
Создание списка пунктов контекстных меню 106
Отображение панели инструментов при определенном условии 107
Скрытие и отображение панелей инструментов 108
Создать подсказку к моим кнопкам 109
Создание меню на основе данных рабочего листа 110
Создание контекстного меню 113
Блокировка контекстного меню 114
Добавление команды в меню Сервис 115
Добавление команды в меню Вид 116
Создание панели со списком 117
Мультфильм с помощником в главной роли 119
Дополнение помощника текстом, заголовком, кнопкой и значком 121
Новые параметры помощника 121
Использование помощника для выбора цвета заливки 122
Вызов предварительного просмотра 124
Открытие диалогового окна (“Открыть файл”)_1 125
Открытие диалогового окна (“Открыть файл”)_2 125
Открытие диалогового окна (“Печать”) 126
Другие диалоговые окна 126
Вызов броузера из Экселя 126
Диалоговое окно ввода данных 126
Диалоговое окно настройки шрифта 126
Значения по умолчанию 126
Вывод списка доступных шрифтов 127
Выбор из текста всех чисел 127
Прописная буква только в начале текста 128
Подсчет количества повторов искомого текста 128
Выделение из текста произвольного элемента 129
Отображение текста «задом наперед» 130
Англоязычный текст — заглавными буквами 130
Запуск таблицы символов из Excel 131
Получить имя пользователя 134
Вывод разрешения монитора 134
Получение информации об используемом принтере 135
Просмотр информации о дисках компьютера 136
Построение диаграммы с помощью макроса 139
Сохранение диаграммы в отдельном файле 140
Построение и удаление диаграммы нажатием одной кнопки 141
Вывод списка диаграмм в отдельном окне 142
Применение случайной цветовой палитры 143
Эффект прозрачности диаграммы 144
Построение диаграммы на основе данных нескольких рабочих листов 145
Создание подписей к данным диаграммы 147
Программа для составления кроссвордов 148
Создать обложку DVD 152
Игра «Минное поле» 153
Игра «Угадай животное» 156
Расчет на основании ячеек определенного цвета 158
Вызов функциональных клавиш 172
Расчет среднего арифметического значения 172
Перевод чисел в «деньги» 172
Поиск ближайшего понедельника 173
Подсчет количества полных лет 174
Расчет средневзвешенного значения 174
Преобразование номера месяца в его название 175
Использование относительных ссылок 175
Преобразование таблицы Excel в HTML-формат 176
Генератор случайных чисел 178
Случайные числа — на основании диапазона 179
Применение функции без ввода ее в ячейку 180
Подсчет именованных объектов 180
Включение автофильтра с помощью макроса 180
Создание бегущей строки 180
Создание бегущей картинки 181
Вращающиеся автофигуры 182
Вызов таблицы цветов 184
Создание калькулятора 185
Склонение фамилии, имени и отчества 185
Вывод даты и времени_1 190
Вывод даты и времени_2 191
Получение системной даты 192
Извлечение даты и часов 192
Функция ДатаПолная 192
Глава 1. Макросы Запуск макроса с поиском ячейки
' Sub GotoFixedCell:
' Делает активной ячейку, содержащую значение vVariant на
' рабочем листе sSheetName в активной рабочей книге.
'
' Note: Содержимое ячеек интерпретируется как 'значение'!
'
Public Sub GotoFixedCell(vValue As Variant, sSheetName As String)
Dim c As Range, cStart As Range, cForFind As Range
Dim i As Integer
On Error GoTo errhandle:
Set cForFind = Worksheets(sSheetName).Cells ' Диапазон поиска
With cForFind
Set c = .Find(What:=vValue, After:=ActiveCell, LookIn:=xlValues, _
LookAt:= xlРart, SearchOrder:=xlByRows,_
SearchDirection:=xlNext, MatchCase:=False)
Set cStart = c
While Not c Is Nothing
Set c = .FindNext(c)
If c.Address = cStart.Address Then
c.Select
Exit Sub
End If
Wend
End With
Exit Sub
errНandle:
MsgBox Err.Descriрtion, vbExclamation, "Error #" & Err.Number
End Sub
Запуск макроса при открытии книги
Sub Auto_Oрen()
Запуск макроса при вводе в ячейку «2»
Private Sub Worksheet_Change(ByVal Target As Range)
Dim w As Object
'On Error Resume Next
If Range("A1").Value = 2 Then
MsgBox "Ох! Значение ячейки стало равным 2-м!"
MsgBox "Я попробую сейчас открыть модуль с процедурой, которая все это делает!"
Application.VBE.MainWindow.SetFocus
Application.VBE.Windows(1).SetFocus
SendKeys "{F7}", True
End If
End Sub
Запуск макроса при нажатии «Ентер»
в модуле листа
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.OnKey "{~}", "StartEnter"
End Sub
в модуле книги
Sub StartEnter()
MsgBox ("sadfsdfsf")
End Sub
Добавить в панель свою вкладку «Надстройки» (Формат ячейки)
Код в модуле рабочего листа
Sub Worksheet_Change(ByVal Target As Excel.Range)
Call UpdateToolbar
End Sub
Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Call UpdateToolbar
End Sub
Листинг 2.43. Код в стандартном модуле
Sub FastChangeNumberFormat()
Dim bar As CommandBar
Dim button As CommandBarButton
' Удаление существующей панели инструментов (если она есть)
On Error Resume Next
CommandBars("Числовой формат").Delete
On Error GoTo 0
' Формирование новой панели
Set bar = CommandBars.Add
With bar
.Name = "Числовой формат"
.Visible = True
End With
' Создание кнопки
Set button = CommandBars("Числовой формат").Controls.Add _
(Type:=msoControlButton)
With button
.Caption = ""
.OnAction = "ChangeNumFormat"
.TooltipText = "Щелкните для изменения числового формата"
.Style = msoButtonCaption
End With
' Обновление созданной панели инструментов
Call UpdateToolbar
End Sub
Sub UpdateToolbar()
' Обновление панели инструментов (если она создана)
On Error Resume Next
' Изменение заголовка кнопки (на название формата выделенной ячейки)
CommandBars("Числовой формат").Controls(1).Caption = _
ActiveCell.NumberFormat
End Sub
Sub ChangeNumFormat()
' Отображение диалогового окна изменения формата ячейки
Application.Dialogs(xlDialogFormatNumber).Show
Call UpdateToolbar
End Sub