
- •Глава 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
- •Получение системной даты
- •Извлечение даты и часов
- •Функция ДатаПолная
Вызов предварительного просмотра
Sub Test()
With Application.Workbooks.Item("Test.xls")
Sheets("Test").PrintPreview
End With
End Sub
Создание пользовательского меню (вариант 1)
Sub AddCustomMenu()
' Добавление меню
With Application.CommandBars(1).Controls.Add(Type:=msoControlPopup, _
Temporary:=True)
.Caption = "Архив"
With .Controls
' Добавление и настройка первого пункта
With .Add(Type:=msoControlButton)
.FaceId = 280
.Caption = "Просмотр"
.OnAction = "Макрос1"
End With
' Добавление вложенного меню
With .Add(Type:=msoControlPopup)
.Caption = "База данных"
With .Controls
' Добавление и настройка первого пункта _
вложенного меню
With .Add(Type:=msoControlButton)
.FaceId = 1643
.Caption = "Поставщики"
.OnAction = "Макрос2"
End With
' Добавление и настройка второго пункта _
вложенного меню
With .Add(Type:=msoControlButton)
.FaceId = 1000
.Caption = "Покупатели"
.OnAction = "Макрос3"
End With
End With
End With
End With
End With
End Sub
Создание пользовательского меню (вариант 2)
Sub AddCustomMenu1()
' Добавление меню с названием "Архив" в часть меню, _
относящуюся к рабочей книге
With MenuBars("Worksheet").Menus.Add(Caption:="Архив")
' Добавление кнопки
.MenuItems.Add Caption:="Просмотр", OnAction:="Макрос1"
' Добавление подменю
With .MenuItems.AddMenu(Caption:="База данных")
' Добавление пунктов подменю
.MenuItems.Add Caption:="Поставщики", OnAction:="Макрос2"
.MenuItems.Add Caption:="Покупатели", OnAction:="Макрос3"
End With
End With
End Sub
Создание пользовательского меню (вариант 3)
Sub AddCustomMenu2()
' Добавление меню с названием "Архив" в часть меню, _
относящуюся к рабочей книге
With MenuBars("Worksheet").Menus.Add(Caption:="Архив")
' Добавление кнопки
.MenuItems.Add Caption:="Просмотр", OnAction:="Макрос1"
' Добавление подменю
With .MenuItems.AddMenu(Caption:="База данных")
' Добавление первого пункта подменю
With .MenuItems.Add(Caption:="Поставщики")
' Настройка кнопки
.OnAction = "Макрос2"
End With
' Добавление второго пункта подменю
With .MenuItems.Add(Caption:="Покупатели")
' Настройка кнопки
.OnAction = "Макрос3"
End With
End With
End With
End Sub
Создание пользовательского меню (вариант 4)
Sub Workbook_Open()
' Задание имени меню
strMenuName = "MyCommandBarName"
' Создание меню
CreateCustomMenu
End Sub
Создание пользовательского меню (вариант 5)
Sub Workbook_BeforeClose(Cancel As Boolean)
' Удаление меню перед закрытием книги
DeleteCustomMenu
End Sub
Public strMenuName As String ' Имя строки меню
Private cbrcBar As CommandBarControl
Sub CreateCustomMenu()
Dim cbrMenu As CommandBar
Dim cbrcMenu As CommandBarControl ' Выпадающее меню "Меню"
Dim cbrcSubMenu As CommandBarControl ' Выпадающее меню "Дополнительно"
' Если уже есть пользовательское меню, то оно удаляется
DeleteCustomMenu
' Создание меню вместо стандартного
Set cbrMenu = Application.CommandBars.Add(strMenuName, msoBarTop, _
True, True)
' Создание выпадающего меню с названием "Меню"
Set cbrcMenu = cbrMenu.Controls.Add(msoControlPopup, , , , True)
With cbrcMenu
.Caption = "&Меню"
End With
' Создание пункта меню
With cbrcMenu.Controls.Add(Type:=msoControlButton, _
Temporary:=True)
.Caption = "&Меню1"
.OnAction = "CallMenu1"
End With
' Создание пункта меню
With cbrcMenu.Controls.Add(Type:=msoControlButton, _
Temporary:=True)
.Caption = "Меню2"
.OnAction = "CallMenu2"
End With
' Создание подменю первого уровня
Set cbrcSubMenu = cbrcMenu.Controls.Add(Type:=msoControlPopup, _
Temporary:=True)
With cbrcSubMenu
.Caption = "Подменю1"
.BeginGroup = True
End With
' Создание пункта меню
With cbrcMenu.Controls.Add(Type:=msoControlButton, _
Temporary:=True)
.Caption = "Вкл/Выкл"
.OnAction = "MenuOnOff"
.Style = msoButtonIconAndCaption
.FaceId = 463
End With
' Создание пункта меню в подменю первого уровня
With cbrcSubMenu.Controls.Add(Type:=msoControlButton, _
Temporary:=True)
.Caption = "Подменю1"
.OnAction = "CallSubMenu1"
.Style = msoButtonIconAndCaption
.FaceId = 2950
.State = msoButtonDown
End With
' Cоздание пункта меню в подменю первого уровня (его состояние _
изменяется посредством пункта "Вкл/Выкл"), для чего сохраним ссылку _
на созданный пункт меню
Set cbrcBar = cbrcSubMenu.Controls.Add(Type:=msoControlButton, _
Temporary:=True)
With cbrcBar
.Caption = "Подменю2"
.OnAction = "CallSubMenu2"
' Сначала меню деактивировано
.Enabled = False
End With
' Создание подменю второго уровня
Set cbrcSubMenu = cbrcSubMenu.Controls.Add(Type:=msoControlPopup, _
Temporary:=True)
With cbrcSubMenu
.Caption = "ПодчПодменю1"
.BeginGroup = True
End With
' Cоздание пункта меню в подменю второго уровня
With cbrcSubMenu.Controls.Add(Type:=msoControlButton, _
Temporary:=True)
.Caption = "ПослМеню1"
.OnAction = "CallLastMenu1"
.Style = msoButtonIconAndCaption
.FaceId = 71
.State = msoButtonDown
End With
' Cоздание пункта меню в подменю второго уровня
With cbrcSubMenu.Controls.Add(Type:=msoControlButton, _
Temporary:=True)
.Caption = "ПослМеню2"
.OnAction = "CallLastMenu2"
.Style = msoButtonIconAndCaption
.FaceId = 72
.Enabled = True
End With
' Отображение меню
cbrMenu.Visible = True
Set cbrcSubMenu = Nothing
Set cbrcMenu = Nothing
Set cbrMenu = Nothing
End Sub
Sub DeleteCustomMenu()
' Удаление строки меню
On Error Resume Next
Application.CommandBars(strMenuName).Delete
On Error GoTo 0
End Sub
Sub CallMenu1()
' Обработка вызова Меню1
MsgBox "Приветствует меню 1!", vbInformation, ThisWorkbook.Name
End Sub
Sub CallMenu2()
' Обработка вызова Меню2
MsgBox "Приветствует меню 2!", vbInformation, ThisWorkbook.Name
End Sub
Sub CallSubMenu1()
' Обработка вызова Подменю1
MsgBox "Приветствует подменю 1!", vbInformation, ThisWorkbook.Name
End Sub
Sub CallSubMenu2()
' Обработка вызова Подменю2
MsgBox "Приветствует подменю 2!", vbInformation, ThisWorkbook.Name
End Sub
Sub CallLastMenu1()
' Обработка вызова Последнего меню1
MsgBox "Приветствует последнее меню 1!", vbInformation, ThisWorkbook.Name
End Sub
Sub CallLastMenu2()
' Обработка вызова Последнего меню2
MsgBox "Приветствует последнее меню 2!", vbInformation, ThisWorkbook.Name
End Sub
Sub MenuOnOff()
' Активация или деактивация пункта "Меню-Подменю1-Подменю2"
cbrcBar.Enabled = Not cbrcBar.Enabled
End Sub