Полезные макросы Excel для автоматизации рутинной работы с примерами применения для разных задач.
Примеры макросов для автоматизации работы
Макросы для фильтра сводной таблицы в Excel.
Как автоматизировать фильтр в сводных таблицах с помощью макроса? Исходные коды макросов для фильтрации и скрытия столбцов в сводной таблице.
Макрос для создания сводной таблицы в Excel.
Как автоматически сгенерировать сводную таблицу с помощью макроса? Исходный код VBA для создания и настройки сводных таблиц на основе исходных данных.
Макросы для изменения формата ячеек в таблице Excel.
Как форматировать ячейки таблицы макросом? Изменение цвета шрифта, заливки и линий границ, выравнивание. Автоматическая настройка ширины столбцов и высоты строк по содержимому с помощью VBA-макроса.
Макрос для копирования и переименования листов Excel.
Как одновременно копировать и переименовывать большое количество листов одним кликом мышкой? Исходный код макроса, который умеет одновременно скопировать и переименовать любое количество листов.
В этом уроке я покажу Вам самые популярные макросы в VBA Excel, которые вы сможете использовать для оптимизации своей работы. VBA — это язык программирования, который может использоваться для расширения возможностей MS Excel и других приложений MS Office. Это чрезвычайно полезно для пользователей MS Excel, поскольку VBA может использоваться для автоматизации вашей работы и значительно увеличить Вашу эффективность. В этой статье Вы познакомитесь с VBA и я вам покажу некоторые из наиболее полезных, готовых к использованию примеров VBA. Вы сможете использовать эти примеры для создания собственных скриптов, соответствующих Вашим потребностям.
Вам не нужен опыт программирования, чтобы воспользоваться информаций из этой статьи, но вы должны иметь базовые знания Excel. Если вы еще учитесь работать с Excel, я бы рекомендовал Вам прочитать статью 20 формул Excel, которые вам нeобходимо выучить сейчас, чтобы узнать больше о функциональных возможностях Excel.
Я подготовил для вас несколько самых полезных примеров VBA Excel с большой функциональностью, которую вы сможете использовать для оптимизации своей работы. Чтобы их использовать, вам необходимо записать их в файл. Следующий параграф посвящен установке макроса Excel. Пропустите эту часть, если вы уже знакомы с этим.
Table of Contents
Как включить макросы в Excel
В Excel нажмите комбинацию клавиш alt + F11. Это приведет вас к редактору VBA в MS Excel. Затем щелкните правой кнопкой мыши папку Microsoft Excel Objects слева и выберите Insert => Module. Это место, где сохраняются макросы. Чтобы использовать макрос, вам нужно сохранить документ Excel как макрос. Из табуляции File => Save as, выберите Save as macro-enabled Workbok (расширение .xlsm) Теперь пришло время написать свой первый макрос!
1. Копирование данных из одного файла в другой.
Очень полезный макрос, поскольку он показывает, как скопировать ряд данных изнутри vba и как создать и назвать новую книгу. Вы можете изменить этот макрос в соответствии с вашими собственными требованиями:
Sub CopyFiletoAnotherWorkbook() Sheets("Example 1").Range("B4:C15").Copy Workbooks.Add ActiveSheet.Paste Application.DisplayAlerts = False ActiveWorkbook.SaveAs Filename:="C:TempMyNewBook.xlsx" Application.DisplayAlerts = True End Sub
2. Отображение скрытых строк
Иногда большие файлы Excel можно содержать скрытые строки для большей ясности И для лучшего удобства пользователей. Вот один макрос, который отобразит все строки из активной рабочей таблицы:
Sub ShowHiddenRows() Columns.EntireColumn.Hidden = False Rows.EntireRow.Hidden = False End Sub
3. Удаление пустых строк и столбов
Пустые строки в Excel — может быть проблемой для обработки данных. Вот как избавиться от них:
Sub DeleteEmptyRowsAndColumns() Dim MyRange As Range Dim iCounter As Long Set MyRange = ActiveSheet.UsedRange For iCounter = MyRange.Rows.Count To 1 Step -1 If Application.CountA(Rows(iCounter).EntireRow) = 0 Then Rows(iCounter).Delete End If Next iCounter For iCounter = MyRange.Columns.Count To 1 Step -1 If Application.CountA(Columns(iCounter).EntireColumn) = 0 Then Columns(iCounter).Delete End If Next iCounter End Sub
4. Нахождение пустых ячеек
Sub FindEmptyCell() ActiveCell.Offset(1, 0).Select Do While Not IsEmpty(ActiveCell) ActiveCell.Offset(1, 0).Select Loop End Sub
#### 5. Заполнение пустых ячеек
Как упоминалось ранее, пустые ячейки препятствуют обработке данных и созданию сводных таблиц. Вот один примерный код, который заменяет все пустые ячейки на 0. Этот макрос имеет очень большое приложение, потому что Вы можете использовать его для поиска и замены результатов N/A, а также других символов, таких как точки, запятые или повторяющиеся значения:
Sub FindAndReplace() Dim MyRange As Range Dim MyCell As Range Select Case MsgBox("Can't Undo this action. " & _ "Save Workbook First?", vbYesNoCancel) Case Is = vbYes ThisWorkbook.Save Case Is = vbCancel Exit Sub End Select Set MyRange = Selection For Each MyCell In MyRange If Len(MyCell.Value) = 0 Then MyCell = 0 End If Next MyCell End Sub
#### 6. Сортировка данных
Следующий макрос сортирует по возрастанию все числа из столбца активной ячейки. Просто дважды нажмите любую ячейку из столбца, который вы хотите отсортировать.
NB: Здесь нам нужно поставить этот код в Sheet1 (папка Microsoft Excel Objects), а не в Module1 (папка Modules):
Private Sub Worksheet_BeforeDoubleClick (ByVal Target as Range, Cancel As Boolean) Dim LastRow As Long LastRow = Cells (Rows.Count, 1) .End (xlUp) .Row Rows ("6:" & LastRow) .Sort _ Key1: = Cells (6, ActiveCell.Column), _ Order1: = xlAscending End Sub
#### 7. Удаление пустых пространств
Иногда данные в книге содержат дополнительные пробелы (whitespace charachters), которые могут мешать анализу данных и коррумпировать формулы. Вот один макрос, который удалит все пробелы из предварительно выбранного диапазона ячеек:
Sub TrimTheSpaces() Dim MyRange As Range Dim MyCell As Range Select Case MsgBox("Can't Undo this action. " & _ "Save Workbook First?", vbYesNoCancel) Case Is = vbYes ThisWorkbook.Save Case Is = vbCancel Exit Sub End Select Set MyRange = Selection For Each MyCell In MyRange If Not IsEmpty(MyCell) Then MyCell = Trim(MyCell) End If Next MyCell End Sub
#### 8. Выделение дубликатов цветом
Иногда в нескольких столбцах, которые мы хотели бы осветить, есть повторяющиеся значения. Этот макрос делает именно это:
Sub HighlightDuplicates() Dim MyRange As Range Dim MyCell As Range Set MyRange = Selection For Each MyCell In MyRange If WorksheetFunction.CountIf(MyRange, MyCell.Value) > 1 Then MyCell.Interior.ColorIndex = 36 End If Next MyCell End Sub
#### 9. Выделение десяти самых высоких чисел
Этот код будет отображать десять самых высоких чисел из набора ячеек:
Sub TopTen() Selection.FormatConditions.AddTop10 Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority With Selection.FormatConditions(1) .TopBottom = xlTop10Top .Rank = 10 .Percent = False End With With Selection.FormatConditions(1).Font .Color = -16752384 .TintAndShade = 0 End With With Selection.FormatConditions(1).Interior .PatternColorIndex = xlAutomatic .Color = 13561798 .TintAndShade = 0 End With Selection.FormatConditions(1).StopIfTrue = False End Sub
Вы можете легко настроить код, чтобы выделить различное количество чисел.
#### 10. Выделение данных больших чем данные число
Когда вы запустите этот код, появится окно. Вам надо написать число, которое вы хотите сравнить с выбранными ячейками.
Sub HighlightGreaterThanValues() Dim i As Integer i = InputBox("Enter Greater Than Value", "Enter Value") Selection.FormatConditions.Delete Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, Formula1:=i Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority With Selection.FormatConditions(1) .Font.Color = RGB(0, 0, 0) .Interior.Color = RGB(31, 218, 154) End With End Sub
Вы тоже можете настроить этот код, чтобы выделить более низкие чисел.
#### 11. Выделение ячеек комментариями
Простой макрос, который выделяет все ячейки, содержащие комментарии:
Sub HighlightCommentCells() Selection.SpecialCells(xlCellTypeComments).Select Selection.Style= "Note" End Sub
#### 12. Выделение ячеек со словами с ошибками
Это очень полезно, когда вы работаете с функциями, которые принимают строки, однако кто-то ввел строку с ошибкой, и ваши формулы не работают. Вот как решить эту проблему:
Sub ColorMispelledCells() For Each cl In ActiveSheet.UsedRange If Not Application.CheckSpelling(Word:=cl.Text) Then _ cl.Interior.ColorIndex = 28 Next cl End Sub
13. Создание сводной таблицы
Вот как создать сводную таблицу в MS Excel (версия 2007). Особенно полезно, когда вы делаете индивидуальный отчет каждый день. Вы можете оптимизировать создание сводной таблицы следующим образом:
Sub PivotTableForExcel2007() Dim SourceRange As Range Set SourceRange = Sheets("Sheet1").Range("A3:N86") ActiveWorkbook.PivotCaches.Create( _ SourceType:=xlDatabase, _ SourceData:=SourceRange, _ Version:=xlPivotTableVersion12).CreatePivotTable _ TableDestination:="", _ TableName:="", _ DefaultVersion:=xlPivotTableVersion12 End Sub
14. Отправка активного файла по электронной почте
Мой любимый код VBA. Он позволяет вам прикреплять и отправлять файл, с которым вы работаете, с предопределенным адресом электронной почты, заголовком сообщения и телом сообщения! Сначала Вам нужно сделать референцию в Excel на Microsoft Outlook (в редакторе Excel VBA, нажмите tools => references и выберите Microsoft Outlook).
Sub SendFIleAsAttachment() Dim OLApp As Outlook.Application Dim OLMail As Object Set OLApp = New Outlook.Application Set OLMail = OLApp.CreateItem(0) OLApp.Session.Logon With OLMail .To = "admin@datapigtechnologies.com; mike@datapigtechnologies.com" .CC = "" .BCC = "" .Subject = "This is the Subject line" .Body = "Hi there" .Attachments.Add ActiveWorkbook.FullName .Display End With Set OLMail = Nothing Set OLApp = Nothing End Sub
15. Вставка всех графиков Excel в презентацию PowerPoint
Очень удобный макрос, который позволяет вам добавлять все ваши графики Excel в презентацию Powerpoint одним щелчком мыши:
Sub SendExcelFiguresToPowerPoint() Dim PP As PowerPoint.Application Dim PPPres As PowerPoint.Presentation Dim PPSlide As PowerPoint.Slide Dim i As Integer Sheets("Slide Data").Select If ActiveSheet.ChartObjects.Count < 1 Then MsgBox "No charts existing the active sheet" Exit Sub End If Set PP = New PowerPoint.Application Set PPPres = PP.Presentations.Add PP.Visible = True For i = 1 To ActiveSheet.ChartObjects.Count ActiveSheet.ChartObjects(i).Chart.CopyPicture _ Size:=xlScreen, Format:=xlPicture Application.Wait (Now + TimeValue("0:00:1")) ppSlideCount = PPPres.Slides.Count Set PPSlide = PPPres.Slides.Add(SlideCount + 1, ppLayoutBlank) PPSlide.Select PPSlide.Shapes.Paste.Select PP.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True PP.ActiveWindow.Selection.ShapeRange.Align msoAlignMiddles, True Next i Set PPSlide = Nothing Set PPPres = Nothing Set PP = Nothing End Sub
16. Вставка таблицы Excel в MS Word
Таблицы Excel обычно помещаются внутри текстовых документов. Вот один автоматический способ экспорта таблицы Excel в MS Word:
Sub ExcelTableInWord() Dim MyRange As Excel.Range Dim wd As Word.Application Dim wdDoc As Word.Document Dim WdRange As Word.Range Sheets("Revenue Table").Range("B4:F10").Cop Set wd = New Word.Application Set wdDoc = wd.Documents.Open _ (ThisWorkbook.Path & "" & "PasteTable.docx") wd.Visible = True Set WdRange = wdDoc.Bookmarks("DataTableHere").Rangе On Error Resume Next WdRange.Tables(1).Delete WdRange.Paste WdRange.Tables(1).Columns.SetWidth _ (MyRange.Width / MyRange.Columns.Count), wdAdjustSameWidth wdDoc.Bookmarks.Add "DataTableHere", WdRange Set wd = Nothing Set wdDoc = Nothing Set WdRange = Nothing End Sub
17. Извлечение слов из текста
Мы можем использовать формулы, если хотим извлечь определенное количество символов. Но что, если мы хотим извлечь только одно слово из предложения или диапазон слов в ячейке? Для этого мы можем сами создать функцию Excel с помощью VBA. Это одна из самых удобных функций VBA, поскольку она позволяет создавать собственные формулы, которые отсутствуют в MS Excel. Давайте продолжим и создадим две функции: findword() и findwordrev():
Function FindWord(Source As String, Position As Integer) As String On Error Resume Next FindWord = Split(WorksheetFunction.Trim(Source), " ")(Position - 1) On Error GoTo 0 End Function Function FindWordRev(Source As String, Position As Integer) As String Dim Arr() As String Arr = VBA.Split(WorksheetFunction.Trim(Source), " ") On Error Resume Next FindWordRev = Arr(UBound(Arr) - Position + 1) On Error GoTo 0 End Function
Отлично, мы уже создали две новые функции в Excel! Теперь попробуйте использовать их в Excel. Функция = FindWordRev (A1,1) берет последнее слово из ячейки A1. Функция = FindWord (A1,3) берет третье слово из ячейки A1 и т. Д.
18. Защита данных в MS Excel
Иногда мы хотим защитить данных нашего файла, чтобы только мы могли его изменять. Вот как это сделать с VBA:
Sub ProtectSheets() Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets ws.Protect Password:="1234" Next ws End Sub
Поздравления! Поскольку вы все еще читаете это, вы действительно заинтересованы в изучении VBA. Как вы уже сами видели, язык программирования VBA чрезвычайно полезен и может сэкономить нам много времени. Надеюсь, вы нашли эту информацию полезной и использовали ее, чтобы стать мастером MS Excel, VBA и компьютерных наук в целом.
© 2018 Атанас Йонков
Литература:
1. ExcelChamps.com: Top 100 Useful Excel Macro [VBA] Codes Examples.
2. Michael Alexander, John Walkenbach (2012). 101 Ready-To-Use Excel Macros.
3. BG Excel.info: 14 ready-to-use Macros for Excel.
Создание таблицы с помощью кода VBA Excel. Создание умной и обычной пользовательской таблицы. Указание стиля умной таблицы, добавление строки итогов. Примеры.
Создание и удаление умной таблицы
Создание умной таблицы
Создается умная таблица Excel с помощью следующего кода:
ActiveSheet.ListObjects.Add(xlSrcRange, Range(«$A$1:$L$15»), , xlNo).Name _ = «МояТаблица1» |
В данном примере:
ActiveSheet — лист, на котором создается таблица, может быть любой лист рабочей книги Excel.
Range(«$A$1:$L$15») — диапазон, который преобразуется в таблицу. Можно использовать и такую форму: Range(Cells(1, 1), Cells(15, 12)), где индексы строк и столбцов можно заменить переменными.
xlNo — указывает, что первая строка выбранного диапазона не содержит заголовки столбцов (граф) будущей таблицы, и их необходимо добавить. В этом случае будет добавлена дополнительная строка с наименованиями столбцов по умолчанию: Столбец1, Столбец2, Столбец3 и т.д., которые в дальнейшем можно переименовать (количество строк в таблице, включая строку заголовков, получится на одну больше, чем в указанном диапазоне). Если в диапазоне уже содержатся заголовки столбцов будущей таблицы, то следует указать вместо xlNo значение xlYes. В этом случае первая строка указанного диапазона будет преобразована в строку заголовков, а если она будет не заполнена, то добавятся названия столбцов по умолчанию: Столбец1, Столбец2, Столбец3 и т.д. (количество строк в таблице, включая строку заголовков, будет то же, что и в указанном диапазоне).
МояТаблица1 — имя, присваиваемое создаваемой таблице. Имя должно быть без пробелов: при указании в коде VBA названия таблицы с пробелами, во время его выполнения Excel заменит пробелы знаками подчеркивания (по крайней мере, так происходит в Excel 2016).
Таблица будет создана со стилем по умолчанию (TableStyleMedium2 в Excel 2016).
Стиль умной таблицы
Присвоение стиля таблице (изменение стиля) осуществляется с помощью свойства TableStyle объекта ListObjects:
ActiveSheet.ListObjects(«МояТаблица1»).TableStyle = «TableStyleMedium15» |
Свойство TableStyle может принимать следующие значения:
- TableStyleLight (светлый) с индексом от 1 до 21 (в Excel 2016);
- TableStyleMedium (средний) с индексом от 1 до 28 (в Excel 2016);
- TableStyleDark (темный) с индексом от 1 до 11 (в Excel 2016).
Например, TableStyleLight5, TableStyleMedium24, TableStyleDark8.
Чтобы отменить стиль таблицы в коде VBA, необходимо свойству TableStyle присвоить пустую строку:
ActiveSheet.ListObjects(«МояТаблица1»).TableStyle = «» |
Этому коду соответствует выбор в разделе «Конструктор» на ленте инструментов Excel самого первого значка стилей в разделе «Светлый».
Добавление строки итогов
Строка итогов умной таблицы добавляется следующим образом:
ActiveSheet.ListObjects(«МояТаблица1»).ShowTotals = True |
Удаляется строка итогов умной таблицы так:
ActiveSheet.ListObjects(«МояТаблица1»).ShowTotals = False |
Удаление умной таблицы
Удалить умную таблицу очень просто:
ActiveSheet.ListObjects(«МояТаблица1»).Delete |
Создание пользовательской таблицы
Мне не приходилось на практике с помощью VBA Excel создавать умные таблицы, в отличие от пользовательских таблиц, которые использовались для улучшения восприятия различных отчетов или сгенерированных документов.
Для создания такой таблицы необходимо:
- определить диапазон, если он заранее не известен (иногда для этого может понадобиться определить номер последней заполненной строки);
- добавить границы ячеек;
- отформатировать строку заголовков;
- добавить строку итогов, если она необходима.
Подробнее о создании пользовательской таблицы в Примере 2.
Примеры создания таблиц
Задание для примеров
Набор данных для примеров создания таблиц
Допустим, на лист Excel переданы данные для заполнения табличной части товарного чека со следующими условиями:
- в табличной части 5 граф: № п/п, Наименование, Количество, Цена и Сумма;
- сколько наименований добавил пользователь неизвестно.
Нам необходимо:
- определить количество строк;
- добавить строку заголовков;
- отобразить сетку (границы ячеек);
- добавить строку итогов.
Таблицу будем оформлять двумя способами: путем создания умной и пользовательской таблиц.
Пример 1 — умная таблица
Упаковываем набор данных из задания в умную таблицу:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
Sub test1() ‘Объявляем переменную для присвоения ей количества строк Dim a As Long ‘Определяем количество строк a = Cells(1, 1).CurrentRegion.Rows.Count ‘Создаем умную таблицу с добавлением строки заголовков ActiveSheet.ListObjects.Add(xlSrcRange, Range(Cells(1, 1),Cells(a, 5)), , xlNo).Name _ = «ТоварныйЧек1» ‘Изменяем названия граф Cells(1, 1) = «№ п/п» Cells(1, 2) = «Наименование» Cells(1, 3) = «Количество» Cells(1, 4) = «Цена» Cells(1, 5) = «Сумма» ‘Добавляем строку итогов ActiveSheet.ListObjects(«ТоварныйЧек1»).ShowTotals = True ‘Стиль оставляем по умолчанию End Sub |
Результат выполнения кода Примера 1 получится такой:
Умная таблица из заданного набора данных
Пример 2 — «обычная» таблица
Упаковываем набор данных из задания в пользовательскую таблицу:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
Sub test2() ‘Объявляем переменную для присвоения ей количества строк Dim a As Long ‘Определяем количество строк a = Cells(1, 1).CurrentRegion.Rows.Count ‘Добавляем строку заголовков Cells(1, 1).EntireRow.Insert ‘Указываем названия граф Cells(1, 1) = «№ п/п» Cells(1, 2) = «Наименование» Cells(1, 3) = «Количество» Cells(1, 4) = «Цена» Cells(1, 5) = «Сумма» ‘Добавляем сетку Range(Cells(1, 1), Cells(a + 1, 5)).Borders.LineStyle = True ‘Добавляем строку итогов Cells(a + 2, 4) = «Итого:» With Cells(a + 2, 5) .FormulaR1C1 = «=SUM(R[-« & a & «]C:R[-1]C)» .Borders.LineStyle = True .Font.Bold = True End With ‘Выделяем заголовки жирным шрифтом и ‘применяем автоподстройку ширины столбцов With Range(Cells(1, 1), Cells(1, 5)) .Font.Bold = True .EntireColumn.AutoFit End With End Sub |
Результат выполнения кода Примера 2 получится такой:
Пользовательская таблица из заданного набора данных
Если решите поэкспериментировать с моим кодом, добавьте любые данные в пять колонок на активном листе Excel, количество строк может быть любым, в пятой графе должны быть числа.
О работе с умной таблицей (обращение к ячейкам, строкам и столбцам; добавление и удаление строк и столбцов) рассказано в статье VBA Excel. Работа с умной таблицей
#Руководства
- 23 май 2022
-
0
Как с помощью макросов автоматизировать рутинные задачи в Excel? Какие команды они выполняют? Как создать макрос новичку? Разбираемся на примере.
Иллюстрация: Meery Mary для Skillbox Media
Рассказывает просто о сложных вещах из мира бизнеса и управления. До редактуры — пять лет в банке и три — в оценке имущества. Разбирается в Excel, финансах и корпоративной жизни.
Макрос (или макрокоманда) в Excel — алгоритм действий в программе, который объединён в одну команду. С помощью макроса можно выполнить несколько шагов в Excel, нажав на одну кнопку в меню или на сочетание клавиш.
Обычно макросы используют для автоматизации рутинной работы — вместо того чтобы выполнять десяток повторяющихся действий, пользователь записывает одну команду и затем запускает её, когда нужно совершить эти действия снова.
Например, если нужно добавить название компании в несколько десятков документов и отформатировать его вид под корпоративный дизайн, можно делать это в каждом документе отдельно, а можно записать ход действий при создании первого документа в макрос — и затем применить его ко всем остальным. Второй вариант будет гораздо проще и быстрее.
В статье разберёмся:
- как работают макросы и как с их помощью избавиться от рутины в Excel;
- какие способы создания макросов существуют и как подготовиться к их записи;
- как записать и запустить макрос начинающим пользователям — на примере со скриншотами.
Общий принцип работы макросов такой:
- Пользователь записывает последовательность действий, которые нужно выполнить в Excel, — о том, как это сделать, поговорим ниже.
- Excel обрабатывает эти действия и создаёт для них одну общую команду. Получается макрос.
- Пользователь запускает этот макрос, когда ему нужно выполнить эту же последовательность действий ещё раз. При записи макроса можно задать комбинацию клавиш или создать новую кнопку на главной панели Excel — если нажать на них, макрос запустится автоматически.
Макросы могут выполнять любые действия, которые в них запишет пользователь. Вот некоторые команды, которые они умеют делать в Excel:
- Автоматизировать повторяющиеся процедуры.
Например, если пользователю нужно каждый месяц собирать отчёты из нескольких файлов в один, а порядок действий каждый раз один и тот же, можно записать макрос и запускать его ежемесячно.
- Объединять работу нескольких программ Microsoft Office.
Например, с помощью одного макроса можно создать таблицу в Excel, вставить и сохранить её в документе Word и затем отправить в письме по Outlook.
- Искать ячейки с данными и переносить их в другие файлы.
Этот макрос пригодится, когда нужно найти информацию в нескольких объёмных документах. Макрос самостоятельно отыщет её и принесёт в заданный файл за несколько секунд.
- Форматировать таблицы и заполнять их текстом.
Например, если нужно привести несколько таблиц к одному виду и дополнить их новыми данными, можно записать макрос при форматировании первой таблицы и потом применить его ко всем остальным.
- Создавать шаблоны для ввода данных.
Команда подойдёт, когда, например, нужно создать анкету для сбора данных от сотрудников. С помощью макроса можно сформировать такой шаблон и разослать его по корпоративной почте.
- Создавать новые функции Excel.
Если пользователю понадобятся дополнительные функции, которых ещё нет в Excel, он сможет записать их самостоятельно. Все базовые функции Excel — это тоже макросы.
Все перечисленные команды, а также любые другие команды пользователя можно комбинировать друг с другом и на их основе создавать макросы под свои потребности.
В Excel и других программах Microsoft Office макросы создаются в виде кода на языке программирования VBA (Visual Basic for Applications). Этот язык разработан в Microsoft специально для программ компании — он представляет собой упрощённую версию языка Visual Basic. Но это не значит, что для записи макроса нужно уметь кодить.
Есть два способа создания макроса в Excel:
- Написать макрос вручную.
Это способ для продвинутых пользователей. Предполагается, что они откроют окно Visual Basic в Еxcel и самостоятельно напишут последовательность действий для макроса в виде кода.
- Записать макрос с помощью кнопки меню Excel.
Способ подойдёт новичкам. В этом варианте Excel запишет программный код вместо пользователя. Нужно нажать кнопку записи и выполнить все действия, которые планируется включить в макрос, и после этого остановить запись — Excel переведёт каждое действие и выдаст алгоритм на языке VBA.
Разберёмся на примере, как создать макрос с помощью второго способа.
Допустим, специальный сервис автосалона выгрузил отчёт по продажам за три месяца первого квартала в формате таблиц Excel. Эти таблицы содержат всю необходимую информацию, но при этом никак не отформатированы: колонки слиплись друг с другом и не видны полностью, шапка таблицы не выделена и сливается с другими строками, часть данных не отображается.
Скриншот: Skillbox Media
Пользоваться таким отчётом неудобно — нужно сделать его наглядным. Запишем макрос при форматировании таблицы с продажами за январь и затем применим его к двум другим таблицам.
Готовимся к записи макроса
Кнопки для работы с макросами в Excel находятся во вкладке «Разработчик». Эта вкладка по умолчанию скрыта, поэтому для начала разблокируем её.
В операционной системе Windows это делается так: переходим во вкладку «Файл» и выбираем пункты «Параметры» → «Настройка ленты». В открывшемся окне в разделе «Основные вкладки» находим пункт «Разработчик», отмечаем его галочкой и нажимаем кнопку «ОК» → в основном меню Excel появляется новая вкладка «Разработчик».
В операционной системе macOS это нужно делать по-другому. В самом верхнем меню нажимаем на вкладку «Excel» и выбираем пункт «Параметры…».
Скриншот: Skillbox Media
В появившемся окне нажимаем кнопку «Лента и панель».
Скриншот: Skillbox Media
Затем в правой панели «Настроить ленту» ищем пункт «Разработчик» и отмечаем его галочкой. Нажимаем «Сохранить».
Скриншот: Skillbox Media
Готово — вкладка «Разработчик» появилась на основной панели Excel.
Скриншот: Skillbox Media
Чтобы Excel смог сохранить и в дальнейшем использовать макрос, нужно пересохранить документ в формате, который поддерживает макросы. Это делается через команду «Сохранить как» на главной панели. В появившемся меню нужно выбрать формат «Книга Excel с поддержкой макросов».
Скриншот: Skillbox Media
Перед началом записи макроса важно знать об особенностях его работы:
- Макрос записывает все действия пользователя.
После старта записи макрос начнёт регистрировать все клики мышки и все нажатия клавиш. Поэтому перед записью последовательности лучше хорошо отработать её, чтобы не добавлять лишних действий и не удлинять код. Если требуется записать длинную последовательность задач — лучше разбить её на несколько коротких и записать несколько макросов.
- Работу макроса нельзя отменить.
Все действия, которые выполняет запущенный макрос, остаются в файле навсегда. Поэтому перед тем, как запускать макрос в первый раз, лучше создать копию всего файла. Если что-то пойдёт не так, можно будет просто закрыть его и переписать макрос в созданной копии.
- Макрос выполняет свой алгоритм только для записанного диапазона таблиц.
Если при записи макроса пользователь выбирал диапазон таблицы, то и при запуске макроса в другом месте он выполнит свой алгоритм только в рамках этого диапазона. Если добавить новую строку, макрос к ней применяться не будет. Поэтому при записи макроса можно сразу выбирать большее количество строк — как это сделать, показываем ниже.
Для начала записи макроса перейдём на вкладку «Разработчик» и нажмём кнопку «Записать макрос».
Скриншот: Skillbox Media
Появляется окно для заполнения параметров макроса. Нужно заполнить поля: «Имя макроса», «Сохранить в», «Сочетание клавиш», «Описание».
Скриншот: Skillbox Media
«Имя макроса» — здесь нужно придумать и ввести название для макроса. Лучше сделать его логически понятным, чтобы в дальнейшем можно было быстро его найти.
Первым символом в названии обязательно должна быть буква. Другие символы могут быть буквами или цифрами. Важно не использовать пробелы в названии — их можно заменить символом подчёркивания.
«Сохранить в» — здесь нужно выбрать книгу, в которую макрос сохранится после записи.
Если выбрать параметр «Эта книга», макрос будет доступен при работе только в этом файле Excel. Чтобы макрос был доступен всегда, нужно выбрать параметр «Личная книга макросов» — Excel создаст личную книгу макросов и сохранит новый макрос в неё.
«Сочетание клавиш» — здесь к уже выбранным двум клавишам (Ctrl + Shift в системе Windows и Option + Cmd в системе macOS) нужно добавить третью клавишу. Это должна быть строчная или прописная буква, которую ещё не используют в других быстрых командах компьютера или программы Excel.
В дальнейшем при нажатии этих трёх клавиш записанный макрос будет запускаться автоматически.
«Описание» — необязательное поле, но лучше его заполнять. Например, можно ввести туда последовательность действий, которые планируется записать в этом макросе. Так не придётся вспоминать, какие именно команды выполнит этот макрос, если нужно будет запустить его позже. Плюс будет проще ориентироваться среди других макросов.
В нашем случае с форматированием таблицы заполним поля записи макроса следующим образом и нажмём «ОК».
Скриншот: Skillbox Media
После этого начнётся запись макроса — в нижнем левом углу окна Excel появится значок записи.
Скриншот: Skillbox Media
Пока идёт запись, форматируем таблицу с продажами за январь: меняем ширину всех столбцов, данные во всех ячейках располагаем по центру, выделяем шапку таблицы цветом и жирным шрифтом, рисуем границы.
Важно: в нашем случае у таблиц продаж за январь, февраль и март одинаковое количество столбцов, но разное количество строк. Чтобы в случае со второй и третьей таблицей макрос сработал корректно, при форматировании выделим диапазон так, чтобы в него попали не только строки самой таблицы, но и строки ниже неё. Для этого нужно выделить столбцы в строке с их буквенным обозначением A–G, как на рисунке ниже.
Скриншот: Skillbox Media
Если выбрать диапазон только в рамках первой таблицы, то после запуска макроса в таблице с большим количеством строк она отформатируется только частично.
Скриншот: Skillbox Media
После всех манипуляций с оформлением таблица примет такой вид:
Скриншот: Skillbox Media
Проверяем, все ли действия с таблицей мы выполнили, и останавливаем запись макроса. Сделать это можно двумя способами:
- Нажать на кнопку записи в нижнем левом углу.
- Перейти во вкладку «Разработчик» и нажать кнопку «Остановить запись».
Скриншот: Skillbox Media
Готово — мы создали макрос для форматирования таблиц в границах столбцов A–G. Теперь его можно применить к другим таблицам.
Запускаем макрос
Перейдём в лист со второй таблицей «Февраль_2022». В первоначальном виде она такая же нечитаемая, как и первая таблица до форматирования.
Скриншот: Skillbox Media
Отформатируем её с помощью записанного макроса. Запустить макрос можно двумя способами:
- Нажать комбинацию клавиш, которую выбрали при заполнении параметров макроса — в нашем случае Option + Cmd + Ф.
- Перейти во вкладку «Разработчик» и нажать кнопку «Макросы».
Скриншот: Skillbox Media
Появляется окно — там выбираем макрос, который нужно запустить. В нашем случае он один — «Форматирование_таблицы». Под ним отображается описание того, какие действия он включает. Нажимаем «Выполнить».
Скриншот: Skillbox Media
Готово — вторая таблица с помощью макроса форматируется так же, как и первая.
Скриншот: Skillbox Media
То же самое можно сделать и на третьем листе для таблицы продаж за март. Более того, этот же макрос можно будет запустить и в следующем квартале, когда сервис автосалона выгрузит таблицы с новыми данными.
Научитесь: Excel + Google Таблицы с нуля до PRO
Узнать больше
Приветствую на странице, которую каждый начинающий VBA-программист просто обязан добавить в закладки. Сейчас расскажу почему.
Макросы могут сэкономить массу времени. Можно автоматизировать небольшие задачи (ссылка на примеры), или создавать целые проекты автоматизации. Нажал кнопку и макрос выполнил работу целого отдела (вот я вообще не преувеличиваю).
Если Вы не знаете, что такое макрос в Excel и для чего они нужны, то рекомендую начать обучение с бесплатного самоучителя. Сборник готовых примеров, конечно, тоже поможет, но лучше начать с основ, а потом уже переходить к практике.
Моя история
Я ещё со школы начал изучать VBA. Читал книжки, пользовался макрорекордером (подсматривал код, изменял под себя).
Когда ты школьник, то верх мастерства сделать калькулятор или игру. Стал студентом — разработал инвестиционный проект строительства свиноводческого комплекса (вводишь пару основных цифр и программа говорит какая мощность комплекса нужна, сколько нужно людей и денег, плюс тонную документов с деталями цикла производства и план-график выхода на проектную мощность).
Это всё, конечно, интересно и круто, но не сравнить с написанием макросов для решения реальных бизнес-задач.
Представьте на минуту, что всю вашу рутину:
- привести таблицу в «нормальный» вид;
- собрать данные из нескольких файлов в один;
- отфильтровать простыню из данных по нескольким критериям;
- построить сводную таблицу, график и отправить боссу
- тонна аналогичных скучных задач.
можно поручить Excel. ОДИН РАЗ прописать логику с помощью VBA и всё! Да, я знаю, что написание макроса иногда может занять неделю, а то и месяц. Но сколько вы каждый день/неделю/месяц тратите время на ерунду?
Я сам далеко не сразу узнал всё про макросы. Приходилось много читать скучных книг с примерами, которые даже не понимал куда применить, собирать по крупицам информацию в интернете. Да что там говорить — я и сейчас продолжаю изучать VBA.
Про сборник
Изначально я не хотел никому и не при каких обстоятельствах показывать сборник. Максимум ученикам и то, какую-нибудь урезанную версию (т..к постоянно добавляю новые коды). С рождением сына я пересмотрел свою позицию и захотел оставить след в истории (пафосно звучит, ну и пусть).
На поиск всех этих примеров я потратил слишком много времени, и будет круто, если сэкономлю ваше и вы сможете уделить его действительно важным вещам.
Если вы считаете, что что-то должно быть в списке, просто оставьте комментарий. Как только добавлю код — удалю комментарий, а про вас напишу в статье.
В этой огромной статье я собрал уже более 200 макросов, для удобства разбил их по группам.
Вы сможете использовать эти коды, даже если до этого не использовали VBA.
Работа с Excel файлами (WorkBook)
- Как создать файл Excel с помощью VBA
- Как сохранить файл в Excel при изменении определенной ячейки или диапазона
- Как сохранить файл в Excel перед закрытием
- Как защитить лист в книге перед закрытием
- Как снятие защиту с листа при открытии Excel файла
- Как открыть Excel файл на нужном листе
- Как открыть Excel файл, определенный пользователем
- Как определить, открыт ли Excel файл
- Как определяем, существует ли Excel файл в папке
- Как обновить все связи в открытых Excel файлах
- Как закрыть сразу все Excel файлы
- Как открыть все Excel файлы в папке
- Как распечатать все Excel файлы в папке
- Как не дать закрыть Excel файл до тех пор, пока не заполнит ячейку
- Как создать резервную копию текущего Excel файла с сегодняшней датой
Назад к списку тем
Работа с листами Excel файла (WorkSheets)
- Как добавить новый лист и присвоить имя
- Как удалить все листы, кроме активного
- Как скрыть все, кроме активного рабочего листа
- Как отобразить все листы книги
- Как переместить рабочие листы книги
- Как сортировать листы по названию
- Как сгруппировать листы по цвету ярлычка
- Как скопировать лист в новый Excel файл
- Как создать новый Excel файл для каждого листа
- Как распечатать листы
- Как защитить все листы
- Как снять защиту со всех листов
- Как создать оглавление со списком листов
- Как изменить масштаб листа с помощью двойного клика
- Как выделить столбец активной строки на листе
Назад к списку тем
Работа с диапазонами (Range)
Эта часть посвящена диапазонам: их выбору, изменению, скрытию и т. д.
- Как выбрать и изменить форматирование диапазона
- Как создать и выбрать именованный диапазон
- Как сделать перебор диапазона ячеек
- Как выбрать и форматировать диапазон
- Как вставить пустые строки в диапазон
- Как отобразить все скрытые строки и столбцы
- Как удалить пустые строки
- Как удалить пустые столбцы
- Как отобрать и отформатировать все формулы на листе
- Как найти первую пустую строку или столбец
- Как применить дополнительный цвет заливки
- Как отсортировать диапазоны по двойному щелчку
- Как ограничить диапазон прокрутки в той или иной области
- Как автоматически задать область печати листа
Назад к списку тем
Макросы для работы с данными
Эта часть посвящена управлению данными: их очистке, форматированию и т. д.
- Как скопировать и вставить диапазон
- Как преобразовать все формулы в диапазон с значениями
- Как преобразовать текстовые значения в числовые
- Как преобразовать тире в минус
- Как удалить лишние пробелы из всех ячеек в диапазоне
- Как отсечь слева 5 знаков в каждой ячейке диапазона
- Как добавить в ячейку недостающие нули
- Как заменить пустые ячейки нулём
- Как добавить текст в начало или конец ячейки
- Как создать макрос преобразования данных
- Как очистить данные от непечатаемых символов
- Как выделить дубликаты в диапазоне данных
- Как скрыть повторяющиеся строки
- Как выборочно скрыть стрелки автофильтра
- Как скопировать отфильтрованные строки в новый Excel файл
- Как создать новый лист для каждого элемента в автофильтре
- Как показать отфильтрованные столбцы в строке состояния
Назад к списку тем
Макросы для сводных таблиц
- Как создать обратную совместимость сводной таблицы
- Как обновить все сводные таблицы книги
- Как создать список всех сводных таблиц книги
- Как создать все сводные таблицы, используя единый кэш
- Как скрыть все промежуточные итоги в сводной таблице
- Как изменить названия всех полей сводной
- Как принудительно суммировать значения для всех полей сводной
- Как применить числовой формат для всех элементов данных
- Как сортировать поля сводной в алфавитном порядке
- Как применить пользовательскую сортировку к элементам данных
- Как поставить защиту на сводную таблицу
- Как применить ограничения сводного поля
- Как автоматически удалять листы с детализацией
- Как распечатать сводную таблицу для каждого значения фильтра
- Как для каждого элемента фильтра создать новый Excel файл
- Как подготовить диапазон данных для сводной таблицы
Назад к списку тем
Макросы для графиков
- Как изменить размер диаграмм на рабочем листе
- Как привязать график к определенному диапазону
- Как создать набора бессвязных диаграмм
- Как распечатать всех диаграммы на рабочем листе
- Как отметить первое и последнее значение на графике
- Как сопоставить цвет диаграммы и исходных данных
- Как сопоставить цвет точек графика и исходных данных
Назад к списку тем
Макросы для отправки писем из Excel
- Как отправить Excel файл почтой (как вложение)
- Как отправить диапазон значений в качестве вложения
- Как отправить один листа файла в качестве вложения
- Как отправить письмо со ссылкой на наши файлы
- Как разослать письма с добавлением адресов в наш список контактов
- Как сохранить все вложения в отдельной папке
- Как сохранить определенные вложения в папку
Назад к списку тем
Макросы для работы с Access
- Как выполнить запрос Access из Excel
- Как запустить макрос Access из Excel
- Как открыть отчет Access из Excel
- Как открыть форму Access из Excel
- Как сжать базу данных Access из Excel
Назад к списку тем
Макросы для работы с MS Word
- Как отправить данные из Excel в Word документ
- Как сделать слияние с Word документом
Назад к списку тем
Макросы для работы с PowerPoint
- Как отправить данные Excel в PowerPoint
- Как отправить график из Excel в PowerPoint
- Как преобразовать рабочую книгу в презентацию PowerPoint
Назад к списку тем
Уже добавили страницу в закладки? Зря, я же пополняю список)
Содержание
- Что такое макрос?
- Запись макроса в Excel
- Первая программа на VBA Excel
- Запуск редактора Visual Basic
- Альтернативный вариант открытия файла
- Создание «умной» таблицы
- Стиль «умной» таблицы
- Добавление строки итогов
- Отображение вкладки “Разработчик” в ленте меню
- Знакомство с редактором VBA
- Создание сводных таблиц макросом
- Примеры макросов для автоматизации работы
- Окна редактора Visual Basic
Что такое макрос?
Для начала немного о терминологии.
Макрос – это код, написанный на встроенном в Excel языке VBA (Visual Basic for Application). Макросы могут создаваться как вручную, так и записываться автоматически с помощью так называемого макрорекодера.
Макрорекодер – это инструмент в Excel, который пошагово записывает все что вы выполняете в Excel и преобразует это в код на языке VBA. Макрорекодер создает очень подробный код (как мы увидим позже), который вы сможете при необходимости отредактировать в дальнейшем.
Записанный макрос можно будет запускать неограниченное количество раз и Excel повторит все записанные шаги. Это означает, что даже если вы ничего не знаете о VBA, вы можете автоматизировать некоторые задачи, просто записав свои шаги и затем повторно использовать их позже.
Теперь давайте погрузимся и посмотрим, как записать макрос в Excel.
Теперь давайте запишем очень простой макрос, который выбирает ячейку и вводит в нее текст, например “Excel”.
Вот шаги для записи такого макроса:
- Перейдите на вкладку “Разработчик”.
- В группе “Код” нажмите кнопку “Запись макроса”. Откроется одноименное диалоговое окно.
- В диалоговом окне “Запись макроса” введите имя для своего макроса, например “ВводТекста”. Есть несколько условий именования, которые необходимо соблюдать при назначении макроса. Например, вы не можете использовать пробелы между ними. Обычно я предпочитаю сохранять имена макросов как одно слово, с разными частями с заглавным первым алфавитом. Вы также можете использовать подчеркивание для разделения двух слов – например, “Ввод_текста”.
- Если вы хотите, то можете задать сочетание клавиш. В этом случае мы будем использовать ярлык Ctrl + Shift + N. Помните, что сочетание, которое вы указываете, будет отменять любые существующие горячие клавиши в вашей книге. Например, если вы назначили сочетание Ctrl + S, вы не сможете использовать это для сохранения рабочей книги (вместо этого, каждый раз, когда вы его используете, он выполняет макрос).
- В поле “Сохранить в” убедитесь, что выбрана опция “Эта книга”. Этот шаг гарантирует, что макрос является частью рабочей книги. Он будет там, когда вы сохраните его и снова откроете, или даже если вы поделитесь файлом с кем-то.
- Введите описание при необходимости. Обычно я этого не делаю, но если у вас много макросов, лучше указать, чтобы в будущем не забыть что делает макрос.
- Нажмите “ОК”. Как только вы нажмете OK, Excel начнет записывать ваши действия. Вы можете увидеть кнопку “Остановить запись” на вкладке “Разработчик”, которая указывает, что выполняется запить макроса.
- Выберите ячейку A2.
- Введите текст “Excel” (или вы можете использовать свое имя).
- Нажмите клавишу Enter. Вы попадете на ячейку A3.
- Нажмите кнопку “Остановить запись” на вкладке “Разработчик”.
Поздравляем! Вы только что записали свой первый макрос в Excel. Хотя макрос не делает ничего полезного, но он поможет нам понять как работает макрорекордер в Excel.
Теперь давайте рассмотрим код который записал макрорекодер. Выполните следующие действия, чтобы открыть редактор кода:
- Удалите текст в ячейке A2. Это нужно, чтобы проверить будет ли макрос вставлять текст в ячейку A2 или нет.
- Выберите любую ячейку – кроме A2. Это нужно проверить, выбирает ли макрос ячейку A2 или нет.
- Перейдите на вкладку “Разработчик”.
- В группе “Код” нажмите кнопку “Макросы”.
- В диалоговом окне “Макрос” щелкните макрос “ВводТекста”.
- Нажмите кнопку “Выполнить”.
Вы увидите, что как только вы нажмете кнопку “Выполнить”, текст “Excel” будет вставлен в ячейку A2 и выбрана ячейка A3. Это происходит за миллисекунды. Но на самом деле макрос последовательно выполнил записанные действия.
Примечание. Вы также можете запустить макрос с помощью сочетания клавиш Ctrl + Shift + N (удерживайте клавиши Ctrl и Shift, а затем нажмите клавишу N). Это тот же самый ярлык, который мы назначили макросу при его записи.
Первая программа на VBA Excel
Добавляем на стандартный модуль шаблон процедуры – строки ее начала и завершения, между которыми мы и будем писать свою первую программу (процедуру, подпрограмму).
- Откройте стандартный модуль двойным кликом по его ссылке в проводнике. Поместите в него курсор и нажмите кнопку «Procedure…» во вкладке «Insert» главного меню. Та же ссылка будет доступна при нажатии на вторую кнопку после значка Excel на панели инструментов.
В результате откроется окно добавления шаблона процедуры (Sub).
- Наберите в поле «Name» имя процедуры: «Primer1», или скопируйте его отсюда и вставьте в поле «Name». Нажмите кнопку «OK», чтобы добавить в модуль первую и последнюю строки процедуры.
Имя процедуры может быть написано как на латинице, так и на кириллице, может содержать цифры и знак подчеркивания. Оно обязательно должно начинаться с буквы и не содержать пробелы, вместо которых следует использовать знак подчеркивания.
- Вставьте внутрь шаблона процедуры следующую строку:
MsgBox "Привет"
.
Функция MsgBox выводит информационное сообщение с указанным текстом. В нашем примере – это «Привет».
- Проверьте, что курсор находится внутри процедуры, и запустите ее, нажав клавишу «F5». А также, запустить процедуру на выполнение можно, нажав на треугольник (на изображении под пунктом меню «Debug») или на кнопку «Run Sub/UserForm» во вкладке «Run» главного меню редактора VBA Excel.
Если вы увидели такое сообщение, как на изображении, то, поздравляю – вы написали свою первую программу!
Запуск редактора Visual Basic
Простейший способ запустить редактор Visual Basic в Excel – нажать комбинацию клавиш Alt+F11 (то есть нажать клавишу Alt и, удерживая её, нажать клавишу F11). После этого откроется окно редактора Visual Basic, как показано на картинке ниже. Имейте ввиду, что окно Excel остается открытым и находится позади окна редактора.
Альтернативный вариант открытия файла
Set objExcel = New Excel.Application Set wb = objExcel.Workbooks wb.Open fname, local:=True Set ws = wb.Item(1).ActiveSheet
При открытии файла можно использовать доп.параметры (приведу некоторые):
UpdateLinks – обновлять или нет внешние ссылки при открытии файла;
ReadOnly – открытие в режиме только для чтения;
Format – используемый при открытии разделитель (1 – символ tab, 2 – запятые, 3 – пробелы, 4 – точка с запятой, 5 – без разделителя, 6 – пользовательский разделитель, заданный в Delimiter);
Delimiter – пользовательский разделитель (в случае, если Format = 6);
Origin – тип операционной системы (xlMacintosh, xlWindows или xlMSDOS);
Local – использование в Excel языка такого же, как в открываемом файле.
Теперь можно выполнять какие-то действия с открытым файлом, просто обращаясь через wb и ws.
ws.Cells(1, 1).Value = "Test" ws.Cells(1, 1).Font.Size = 18 ' Поменять размер шрифта ws.Cells(1, 1).HorizontalAlignment = xlCenter '
Создание «умной» таблицы
Создается «умная» таблица Excel с помощью следующего кода:
ActiveSheet.ListObjects.Add(xlSrcRange, Range(“$A$1:$L$15”), , xlNo).Name _ = “МояТаблица1” |
В данном примере:
ActiveSheet – лист, на котором создается таблица, может быть любой лист рабочей книги Excel.
Range(“$A$1:$L$15”) – диапазон, который преобразуется в таблицу. Можно использовать и такую форму: Range(Cells(1, 1), Cells(15, 12)), где индексы строк и столбцов можно заменить переменными.
xlNo – указывает, что первая строка выбранного диапазона не содержит заголовки столбцов (граф) будущей таблицы, и их необходимо добавить. В этом случае будет добавлена дополнительная строка с наименованиями столбцов по умолчанию: Столбец1, Столбец2, Столбец3 и т.д., которые в дальнейшем можно переименовать (количество строк в таблице, включая строку заголовков, получится на одну больше, чем в указанном диапазоне). Если в диапазоне уже содержатся заголовки столбцов будущей таблицы, то следует указать вместо xlNo значение xlYes. В этом случае первая строка указанного диапазона будет преобразована в строку заголовков, а если она будет не заполнена, то добавятся названия столбцов по умолчанию: Столбец1, Столбец2, Столбец3 и т.д. (количество строк в таблице, включая строку заголовков, будет то же, что и в указанном диапазоне).
МояТаблица1 – имя, присваиваемое создаваемой таблице. Имя должно быть без пробелов: при указании в коде VBA названия таблицы с пробелами, во время его выполнения Excel заменит пробелы знаками подчеркивания (по крайней мере, так происходит в Excel 2016).
Таблица будет создана со стилем по умолчанию (TableStyleMedium2 в Excel 2016).
Стиль «умной» таблицы
Присвоение стиля таблице (изменение стиля) осуществляется с помощью свойства TableStyle объекта ListObjects:
ActiveSheet.ListObjects(“МояТаблица1”).TableStyle = “TableStyleMedium15” |
Свойство TableStyle может принимать следующие значения:
- TableStyleLight (светлый) с индексом от 1 до 21 (в Excel 2016);
- TableStyleMedium (средний) с индексом от 1 до 28 (в Excel 2016);
- TableStyleDark (темный) с индексом от 1 до 11 (в Excel 2016).
Например, TableStyleLight5, TableStyleMedium24, TableStyleDark8.
Чтобы отменить стиль таблицы в коде VBA, необходимо свойству TableStyle присвоить пустую строку:
ActiveSheet.ListObjects(“МояТаблица1”).TableStyle = “” |
Этому коду соответствует выбор в разделе «Конструктор» на ленте инструментов Excel самого первого значка стилей в разделе «Светлый».
Добавление строки итогов
Строка итогов «умной» таблицы добавляется следующим образом:
ActiveSheet.ListObjects(“МояТаблица1”).ShowTotals = True |
Удаляется строка итогов «умной» таблицы так:
ActiveSheet.ListObjects(“МояТаблица1”).ShowTotals = False |
Отображение вкладки “Разработчик” в ленте меню
Перед тем как записывать макрос, нужно добавить на ленту меню Excel вкладку “Разработчик”. Для этого выполните следующие шаги:
- Щелкните правой кнопкой мыши по любой из существующих вкладок на ленте и нажмите «Настроить ленту». Он откроет диалоговое окно «Параметры Excel».
- В диалоговом окне «Параметры Excel» у вас будут параметры «Настроить ленту». Справа на панели «Основные вкладки» установите флажок «Разработчик».
- Нажмите «ОК».
В результате на ленте меню появится вкладка “Разработчик”
Знакомство с редактором VBA
- Создайте новую книгу Excel и сохраните ее как книгу с поддержкой макросов с расширением .xlsm. В старых версиях Excel по 2003 год – как обычную книгу с расширением .xls.
- Нажмите сочетание клавиш «левая_клавиша_Alt+F11», которое откроет редактор VBA. С правой клавишей Alt такой фокус не пройдет. Также, в редактор VBA можно перейти по ссылке «Visual Basic» из панели инструментов «Разработчик» на ленте быстрого доступа. Если вкладки «Разработчик» на ленте нет, ее следует добавить в настройках параметров Excel.
В левой части редактора VBA расположен проводник проекта, в котором отображены все открытые книги Excel. Верхней строки, как на изображении, у вас скорее всего не будет, так как это – личная книга макросов. Справа расположен модуль, в который записываются процедуры (подпрограммы) с кодом VBA. На изображении открыт модуль листа, мы же далее создадим стандартный программный модуль.
- Нажмите кнопку «Module» во вкладке «Insert» главного меню. То же подменю откроется при нажатии на вторую кнопку после значка Excel на панели инструментов.
После нажатия кнопки «Module» вы увидите ссылку на него, появившуюся в проводнике слева.
Создание сводных таблиц макросом
Источник информации для сводных таблиц всегда один и тот же – база данных. Набор данных образующих базу для обработки в Excel может быть не только на листах рабочей книги, а также и во внешних источниках.
Для описания способа создания сводных таблиц средствами процедур VBA будет использоваться таблица, которая содержит данные по месяцам о оборотах семи магазинов фирмы за последние несколько лет деятельности.
Тестовая база для примера состоит из сгруппированных данных в 21 строке. Благодаря использованию сводных таблиц можно в читабельный вид презентовать изменение данных и извлечь соответственные результаты анализа.
Список данных по каждому месяцу определенного года содержит информацию о размере оборотов в отдельных магазинах фирмы. В таблице включен режим автофильтра, чтобы упростить на сколько возможно предварительный визуальный анализ данных.
С помощью макроса VBA создадим из этого большого объема данных читабельный и удобный для визуального анализа отчет в виде сводной таблице. Нам нужна сводная таблица отчета, в котором без труда можно прочитать интересующую нас информацию без визуального анализа сотен строк в исходной базе данных.
В данном примере создание сводной таблицы VBA-макросом будет достаточно простым. Простота решения будет достигнута за счет симуляции использования подобных параметров и действий, которые предоставляет к распоряжению мастер сводных таблиц в Excel. Используя экземпляр объекта PivotCaches запишем настройки своей сводной таблицы присвоив ей определенное имя. Это позволит потом непосредственно ссылаться на сводную таблицу в любой части кода. Для создания сводной таблицы используя макрос будем использовать метод PivotTableWizard. На этом же шаге будем использовать возможности объекта PivotFields, в котором определим структуру сводной таблицы с учетом исходных данных источника.
Написание кода макросов в Excel всегда начинается с открытия VBA-редактора (ALT+F11): «РАЗРАБОТЧИК»-«Код»-«Visual Basic».
Затем создадим модуль где будет храниться исходный код. Для этого выберите инструмент в редакторе VBA: «Insert»-«Module». В появившемся окне модуля введите следующий VBA-код макроса:
SubCreateTableM()
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:="Лист1!A1:D21").CreatePivotTable TableDestination:="", TableName:="ТаблицаМ"
WithActiveSheet
.Name ="Анализ"
.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
End With
WithActiveSheet.PivotTables("ТаблицаМ")
.SmallGrid =True
.PivotFields("Оборот").Orientation = xlDataField
.PivotFields("Год").Orientation = xlPageField
.PivotFields("Месяц").Orientation = xlRowField
.PivotFields("Магазины").Orientation = xlColumnField
End With
End Sub
Теперь достаточно лишь запустить макрос выбрав инструмент: «РАЗРАБОТЧИК»-«Код»-«Макросы»-«CreateTableM»-«Выполнить»:
В результате будет автоматически сгенерированная сводная таблица с помощью макроса.
Примеры макросов для автоматизации работы
Как выделить повторяющиеся значения в Excel разными цветами?.
Пример удобного макроса для автоматической подсветки добирающихся значений ячеек разными цветами. Как выделить разным цветом дубликаты ячеек?
Макрос для поиска ближайшего значения заданному на всех листах книги Excel.
Готовое решение для поиска на всех листах рабочей книги как точного, так и максимально приближенного исходного значения. VBA код макрос для нахождения и получения числа с любого листа книги.
Макрос для слияния данных при серийной печати рассылок в Excel.
Альтернатива инструменту слияния в Word для печати рассылок прямо из Excel. Исходный код макроса, который выполняет слияние данных для серийной печати рассылок.
Макросы для фильтра сводной таблицы в Excel.
Как автоматизировать фильтр в сводных таблицах с помощью макроса? Исходные коды макросов для фильтрации и скрытия столбцов в сводной таблице.
Макрос позволяет рассчитать процент в сводной таблице Excel.
Как быстро преобразовать значения сводной таблицы на доли в процентном соотношении к общим итогам по строкам и по столбцам? Исходные коды макросов для работы с процентами.
Макрос для настройки полей и форматирования сводной таблицы.
Управление полями сводной таблицы с помощью макроса. Исходный код VBA-макроса для настройки и изменения структуры в сводных таблицах.
Макрос для создания сводной таблицы в Excel.
Как автоматически сгенерировать сводную таблицу с помощью макроса? Исходный код VBA для создания и настройки сводных таблиц на основе исходных данных.
Макросы для изменения формата ячеек в таблице Excel.
Как форматировать ячейки таблицы макросом? Изменение цвета шрифта, заливки и линий границ, выравнивание. Автоматическая настройка ширины столбцов и высоты строк по содержимому с помощью VBA-макроса.
VBA макрос для поиска скрытых строк и столбцов на листе Excel.
Поиск всех скрытых строк и столбцов на рабочем листе с помощью VBA-макроса. Исходные коды макросов для получения сводной информации о скрытых строках и столбцах рабочего листа.
Макрос для копирования и переименования листов Excel.
Как одновременно копировать и переименовывать большое количество листов одним кликом мышкой? Исходный код макроса, который умеет одновременно скопировать и переименовать любое количество листов.
Окна редактора Visual Basic
В процессе работы в редакторе Visual Basic в Excel могут быть открыты различные окна. Управление окнами осуществляется в меню View, которое находится в верхней части окна редактора VBA.
Источники
- https://micro-solution.ru/excel/vba/first-macros
- https://vremya-ne-zhdet.ru/vba-excel/nachinayem-programmirovat-s-nulya/
- https://office-guru.ru/excel/redaktor-visual-basic-v-excel-451.html
- https://codernotes.ru/articles/vba/rabota-s-excel-fajlom-iz-vba.html
- https://vremya-ne-zhdet.ru/vba-excel/sozdaniye-tablitsy/
- https://exceltable.com/vba-macros/makros-svodnoy-tablicy
- https://exceltable.com/vba-macros/
VBA Excel: примеры программ. Макросы в Excel
Смотрите также макроса, лучше создать последнего действия (Undo) каких-либо событий в пользовательских функций позволяет рассматриваемой последовательности действий. и более новых подсчитает результат только желании можно установить файл с данными возможности созданного ВамиилиМакрос в Microsoft Office зафиксировано, ячейки для необходимо создать макросx2 = 10 выделена другим цветомНемногие знают, что первая
Что такое VBA
кнопку и назначить — во время книге (открытие или автоматизировать эти операции,Автоматическое создание кода VBA версиях: один раз, а
хранение в новойdata.csv макроса, считаю правильным=МАКС(B2:K2) (да, этот функционал внесения значений по для «Эксель», чтобыshag = 0.1 (зеленым). Причина в версия популярного продукта ей нужный макрос.
записи макроса макрорекордером сохранение книги, печать перекладывая монотонную однообразную в Excel отличноПанель инструментов записи макроса не будет его книге, или всоздаётся автоматически каким-то обратить внимание на=MEDIAN(B2:K2) работает одинаково во итогам и ФИО в ячейку сi = 1 апострофе, поставленном в Microsoft Excel появилась Кнопка может быть она не просто файла и т.п.): работу на плечи работает для простых в Excel 2003:
Объекты, коллекции, свойства и методы
постоянно пересчитывать, чем отдельной книге макросов. процессом и сохраняется пару важных моментов,или многих приложениях пакета специалиста заранее не координатами (1,1) былоDo While x1 < начале строки, который в 1985 году. нескольких типов: возрвращает Вас в
Модуль листа Excel. Другим поводом макросов, но еслиНажмите сэкономит время. Мы оставим значение на диске всегда касающихся макросов в=МЕДИАНА(B2:K2) Microsoft Office) –
резервируют. Рабочему листу записано: x2 (цикл будет обозначает, что далее С тех порКнопка на панели инструментов предыдущее состояние, но- доступен через
для использования макросов нужно построить болееСтопПродвинутые пользователи могут выполнять по умолчанию. в одном и
целом:Теперь выделите ячейки с это программный код присваивается новое название.1, если аргумент положительный; выполняться пока верно следует комментарий. он пережил несколько в Excel 2003 и стирает последнюю Project Explorer и в вашей работе сложный макрос, то, когда выполните все не только редактирование
В самом нижнем поле том же месте.Макрос может нанести вред. формулами и скопируйте
Как начать
на языке программирования Например, «Օтчет».0, если аргумент нулевой; выражение x1 <Теперь вы можете написать модификаций и востребован
и старше записанную команду на через контекстное меню может стать необходимость придётся научиться писать
- действия, которые должны и оптимизацию записанных настройки макросов можно Например,Ещё раз прочти предыдущий
- их во все
- Visual Basic for ApplicationsДля написания программы автоматического-1, если аргумент отрицательный.
- x2) любой код и
у миллионов пользователей
Откройте меню
VBA.
листа, т.е. правой
добавить в Microsoft код VBA самостоятельно. быть записаны в макросов, но и оставить любое подходящееC:Datadata.csv пункт. строки нашей таблицы,
(VBA), сохранённый внутри заполнения шаблона, необходимоСоздание такого макроса дляy=x1 + x1^2 + создать для себя по всему миру.Сервис — НастройкаЧтобы включить запись необходимо: кнопкой мыши по Excel недостающие, но Тем не менее, макрос. Теперь код записывать код макросов по контексту описание
Макросы в Excel
– путь кVBA-код обладает очень большими потянув за маркер документа. Чтобы было выбрать обозначения. Они «Эксель» начинается стандартным 3*x1^3 – Cos(x1) новый инструмент в При этом многие(Tools — Customize)в Excel 2003 и ярлычку листа - нужные вам функции. запись макроса в записанного макроса сохранён с нуля. Для данного макроса. Но, файлу с обновляемыми возможностями. В частности, автозаполнения.
Пример 1
понятнее, документ Microsoft будут использоваться для способом, через использованиеCells(i, 1).Value = x1 VBA Excel (примеры
работают лишь с
- и перейдите на
- старше — выбрать
- команда
- Например функцию сборки
Excel – это в модуле редактора того, чтобы приступить это делать не данными. Процесс открытия он может выполнятьПосле выполнения этого действия Office можно сравнить переменных:
«горячих» клавиш Alt (значение x1 записывается программ см. далее). малой толикой возможностей вкладку в менюИсходный текст (View Source) данных с разных отличны инструмент, при
Visual Basic.
- к этому, нужно обязательно.
- этого файла и операции с файлами
- в каждой строке со страницей HTML,NN– номер текущей строки
и F11. Далее в ячейку с Конечно, тем, кто этого табличного процессора
Команды (Commands)Сервис — Макрос -. Сюда записывают макросы, листов на один помощи которого можноЕсли перед началом записи нажать на кнопкуКогда все настройки выполнены, импорта данных из за пределами текущего должны появиться соответствующие тогда макрос –
таблицы; записывается следующий код: координатами (i,1)) знаком с азами и даже не. В категории Начать запись которые должны выполняться итоговый лист, разнесения создавать первоначальный код, макроса включить параметр «Visual Basic», которая
жмем на кнопку него тоже можно документа. Например, макрос итоговые значения. это аналог Javascript.TP и TF –Sub program()
Пример 2
Cells(i, 2).Value = y Visual Basic, будет догадываются, как им
Макросы(Tools — Macro - при наступлении определенных данных обратно, вывод а в дальнейшемОтносительные ссылки расположена в самом «OK». записать в макрос: может удалять или
Далее, мы подведем итоги То, что Javascript планируемый и фактическийx= Cells(1, 1).Value (эта (значение y записывается намного проще. Однако могло бы облегчитьлегко найти веселый Record New Macro)
событий на листе суммы прописью и исправлять или вставлять(Use Relative References), начале ленты разработчика.После этого, все вашиОткройте файл шаблона, в
изменять любые файлы
для всей таблицы,
умеет делать с
товарооборот;
команда присваивает x
в ячейку с даже те, кто жизнь умение программирования желтый «колобок» -в Excel 2007 и
(изменение данных в т.д.
его в более то все ссылкиПосле этого, открывается знакомое действия в данной
котором мы сохранили в папке для этого делаем данными в формате
SF и SP – значение содержимого ячейки
координатами (i,2)) их не имеет, в Excel.
Настраиваемую кнопку
новее — нажать
ячейках, пересчет листа,Макрос сложные макросы. в записываемом макросе нам окно редактора книге (файле) Excel макрос —Мои документы
ещё несколько математических HTML, находящимися на фактическая и планируемая
Пример 3
с координатами (1,i = i + при желании смогутПрограммирование в Excel осуществляется(Custom button) кнопку копирование или удаление
- это запрограммированнаяУрок подготовлен для Вас будут создаваться как VBE. будут записываться вFormatData. По этой причине действий: web-странице, очень похоже
сумма издержек; 1)) 1 (действует счетчик); освоиться достаточно быстро. посредством языка программирования:Запись макроса (Record macro) листа и т.д.)
последовательность действий (программа, командой сайта office-guru.ru
относительные. Если жеПрограммист пишет там код макрос до тех. запускайте и разрешайте
Соответственно: на то, чтоIP и IF –If x>0 Then Cells(1,x1 = x1 +За таким названием скрываются
Visual Basic forПеретащите ее к себена вкладке
Обычный макрос, введенный в процедура), записанная наИсточник: http://www.excelfunctions.net/Record-A-Macro.html параметр выключен, то макроса вручную. пор, пока выСоздайте новый макрос с
выполнение макросов только=SUM(L2:L21) макрос может делать планируемый и фактически 1).Value = 1 shag (аргумент изменяется программы, написанные на Application, который изначально на панель инструментовРазработчик (Developer) стандартный модуль выглядит
языке программирования VisualПеревел: Антон Андронов
при записи макроса
Как видим, макросы в сами не остановите именем из источников, которымили с данными в
уровень издержек.If x=0 Then Cells(1, на величину шага); языке Visual Basic встроен в самый
и затем щелкнитеЗатем необходимо настроить параметры примерно так: Basic for Applications
Автор: Антон Андронов
будут создаваться абсолютные Microsoft Excel могут запись.LoadData Вы доверяете.=СУММ(L2:L21) документе Microsoft Office.Обозначим теми же буквами, 1).Value = 0Loop for Application. Таким
Пример 4
известный табличный процессор по ней правой записываемого макроса вДавайте разберем приведенный выше (VBA). Мы можемСкачать бесплатно исходные ссылки (подробнее об значительно ускорить выполнениеДля примера, запишем простейшее.Чтобы запустить наш макрос,=AVERAGE(B2:K21)Макросы способны выполнить практически но с «приставкой»If xEnd Sub. образом, программирование в
от Microsoft. кнопкой мыши. В окне в качестве примера запускать макрос сколько коды VBA-макросов с
этих двух типах
рутинных и однообразных
арифметическое действие: сложение
В процессе записи макроса форматирующий данные, откройтеили любые действия в Itog накопление итогаEnd Sub.
В результате запуска данного
Excel — этоК его достоинствам специалисты контекстом меню можноЗапись макроса макрос
угодно раз, заставляя широкими возможностями для
ссылок можно узнать процессов. Но, в
содержимого трёх ячеек
LoadData
файл шаблона, который=СРЗНАЧ(B2:K21) документе, которые Вы по данному столбцу.
Функции VBA
Остается запустить макрос и макроса в «Эксель» создание макросов с относят сравнительную легкость назначить кнопке макрос,:Zamena Excel выполнять последовательность автоматической обработки, редактирования в статьях, посвящённых большинстве случаев, для (=C4+C5+C6).сделайте импорт данных мы создали в— для расчёта только можете пожелать.
- Например, ItogTP – получить в «Эксель» получаем два столбца, нужным кодом. Благодаря освоения. Как показывает
- выбрать другой значокИмя макроса: любых нужных нам и форматирования больших теме ссылок на этого больше подходят
- После этого, жмем на из файла первой части этого
- этого значения необходимо Вот некоторые из касается столбца таблицы, нужное значение для в первом из этой возможности табличный практика, азами VBA и имя:- подойдет любоеЛюбой макрос должен начинаться действий, которые нам таблиц. ячейки в Excel). макросы, код которых кнопку «Остановить запись».data.csv урока. Если у
- взять именно исходные них (очень малая озаглавленного, как «планируемый аргумента. которых записаны значения
- процессор Microsoft саморазвивается, могут овладеть дажеКнопка на панели быстрого имя на русском с оператора не хочется выполнятьМакрос для объединения одинаковыхПараметр написан вручную, а Эта кнопка преобразовалась– как мы Вас стандартные настройки данные таблицы. Если
- часть): товарооборот».Как вы уже могли для x, а подстраиваясь под требования
- пользователи, которые не доступа в Excel или английском языке.Sub вручную. ячеек в таблицеОтносительные ссылки
- не автоматически записанные
из кнопки «Запись это делали в безопасности, то при взять среднее значение
Пример 5
Применять стили и форматирование.Используя введенные обозначения, получаем заметить, программировать в
во втором — конкретного пользователя. Разобравшись имеют навыков профессионального
- 2007 и новее Имя должно начинаться, за которым идет
- В принципе, существует великое Excel.(Use Relative References) действия. Кроме того, макроса», после включения предыдущей части урока. открытии файла сверху
из средних поВыполнять различные операции с
Создание шаблона
формулы для отклонений. самом известном табличном для y. с тем, как программирования. К особенностямЩелкните правой кнопкой мыши с буквы и имя макроса и множество языков программированияИсходный код макроса находится в разделе код макроса можно записи.Когда импорт будет завершён, над таблицей появится отдельным строкам, то числовыми и текстовыми Если требуется осуществить
Переменные
процессоре Microsoft неЗатем по ним строится создавать модули для VBA относится выполнение по панели быстрого
- не содержать пробелов список аргументов (входных
- (Pascal, Fortran, C++, для одновременного поискаМакросы
- оптимизировать через редакторДля того, чтобы проверить, остановите запись макроса.
- предупреждение о том, результат будет другим. данными.
расчет в % так уж сложно. график способом, стандартным написания макросов, можно скрипта в среде доступа в левом и знаков препинания. значений) в скобках.
Решение задачи с использованием программирования на VBA
C#, Java, ASP, и объединения ячеек(Macros) на вкладке VBE для ускорения как работает записанныйУдалите все данные из что запуск макросов=MIN(N2:N21)Использовать внешние источники данных
имеем (F – Особенно, если научиться для «Эксель». приступать к рассмотрению
офисных приложений. верхнем углу окнаСочетание клавиш Если аргументов нет, PHP…), но для
с одинаковыми значениямиВид процесса выполнения задачи. макрос, кликаем в ячеек. отключен, и кнопка,или (файлы баз данных,
P) / P применять функции VBA.Для реализации циклов в конкретных примеров программНедостатком программы являются проблемы,
Excel и выберите- будет потом то скобки надо всех программ пакета
в таблице. Работа(View). В ExcelАвтор: Максим Тютюшев том же блокеСохраните файл, как шаблон чтобы включить их=МИН(N2:N21) текстовые документы и * 100, а Всего в этом VBA Excel 2010, VBA Excel. Лучше связанные с совместимостью команду использоваться для быстрого оставить пустыми. Microsoft Office стандартом
со свойством Merge. 2003 этот параметрПростую последовательность действий, которую инструментов «Код» по Excel с поддержкой выполнение. Так как=MAX(O2:O21) т.д.) в сумме — языке программирования, созданном как и в всего начать с различных версий. ОниНастройка панели быстрого доступа запуска макроса. ЕслиЛюбой макрос должен заканчиваться является именно встроенныйМакрос для объединения пустых расположен на плавающей нужно повторить несколько кнопке «Макросы», или макросов (расширение XLTM). шаблон мы сделалиили
Создавать новый документ.
fb.ru
Как автоматизировать рутинные задачи в Excel с помощью макросов
- (F – P).
- специально для написания других версиях, наряду
- самых элементарных кодов.
- обусловлены тем, что (Customise Quick Access
- забудете сочетание или оператором
язык VBA. Команды ячеек в строках панели инструментов. раз, можно записать жмем сочетание клавишТаким образом, запустив этот самостоятельно и себе=МАКС(O2:O21)Проделывать все вышеперечисленные действияРезультаты этих вычислений можно приложений в «Эксель» с уже приведеннойЗадача: написать программу, которая код программы VBA Toolbar) вообще его неEnd Sub
этого языка понимает таблицы Excel.Параметр в виде программного Alt+F8. шаблон, Вы получаете мы доверяем, то=MEDIAN(B2:K21) в любой их
Что такое Макрос?
лучше всего сразу и Word, около конструкцией Do While будет копировать значение обращается к функциональным: введете, то макрос. любое офисное приложение,Исходный код макросаОтносительные ссылки кода и сохранитьПосле этого, открывается окно доступ к двум нажимаем кнопкуили комбинации. внести в соответствующие 160 функций. Их используется For. содержимое одной ячейки возможностям, которые присутствуютЗатем в открывшемся окне можно будет запустить
Все, что находится между будь то Excel, для объединения всех(Use Relative References) как макрос. Если со списком записанных макросам – один
- Enable Content
- =МЕДИАНА(B2:K21)Для примера возьмём самый ячейки таблицы «Эксель».
- можно разделить наРассмотрим программу, которая создаст и затем записывать в новой версии
- выберите категорию
- через менюSub Word, Outlook или
Создание макроса – практический пример
пустых ячеек во в современных версиях последовательность действий записана макросов. Ищем макрос, загружает данные, другой(Включить содержимое).— считаем, используя обычный файлДля итогов по факту несколько больших групп. столбец. В каждой в другую. продукта, но отсутствуютМакросы
Сервис — Макрос -и Access. всех строках таблицы Excel: в макрос, то который мы записали, их форматирует.Следующим шагом, мы импортируем исходные данные таблицы,
CSV и прогнозу получают Это: его ячейке будутДля этого: в старой. Такжеи при помощи
Макросы — ВыполнитьEnd SubДля ввода команд и Excel по горизонтали.Параметр
выполнять её можно выделяем его, иЕсли есть желание заняться последний обновлённый набор по причине указанной. Это простая таблица
по формулам ItogP=ItogPМатематические функции. Применив их записаны квадраты номераоткрывают вкладку «Вид»; к минусам относят кнопки(Tools — Macro -- тело макроса, формирования программы, т.е. Как автоматически объединитьОтносительные ссылки снова и снова, жмем на кнопку
программированием, Вы можете данных из файла выше. 10х20, заполненная числами + P и к аргументу, получают соответствующей строки. Использованиепереходят на пиктограмму «Макросы»; и чрезмерно высокуюДобавить (Add) Macros — Run) т.е. команды, которые создания макроса необходимо все пустые ячейки?(Use Relative References) просто запуская этот «Выполнить». объединить действия этихCSV
Теперь, когда с вычислениями от 0 до ItogF=ItogF+ F. значение косинуса, натурального конструкции For позволитжмут на «Запись макроса»;
открытость кода дляперенесите выбранный макросили с помощью будут выполняться при открыть специальное окноМакрос для объединения всех на плавающей панели макрос. Это гораздоМожно поступить ещё проще,
- двух макросов в(на основе такого закончили, займёмся форматированием.
- 100 с заголовкамиДля отклонений используют = логарифма, целой части
- записать ее оченьзаполняют открывшуюся форму. изменения посторонним лицом.
- в правую половину кнопки запуске макроса. В
- — редактор программ пустых ячеек в инструментов в Excel
эффективнее, чем выполнять и не вызывать один – просто файла мы создавали Для начала для для столбцов и
(ItogF – ItogP) и пр. коротко, без использованияДля простоты в поле
Тем не менее окна, т.е. наМакросы (Macros) данном случае макрос на VBA, встроенный
таблице Excel.
- 2003: раз за разом даже окно выбора
- скопировав код из наш макрос). всех ячеек зададим строк. Наша задача / ItogP *Финансовые функции. Благодаря их счетчика. «Имя макроса» оставляют Microsoft Office, а панель быстрого доступа:на вкладке
- выделяет ячейку заливает в Microsoft Excel.Пример как автоматически
- Код VBA, записанный в одни и те макросов. Мы же
- LoadDataПри выполнении импорта данных одинаковый формат отображения превратить этот набор 100, если расчет наличию и используяСначала нужно создать макрос,
«Макрос1», а в также IBM LotusКнопка на листеРазработчик (Developer) выделенных диапазон (Selection)В старых версиях (Excel убрать пустые ячейки макрос, размещается в же действия вручную. помним, что записалив начало кода из CSV-файла, возможно, данных. Выделите все данных в презентабельно ведется в процентах, программирование в Excel, как описано выше. поле «Сочетание клавиш» Symphony позволяют пользователюЭтот способ подходит дляили нажав ALT+F8. желтым цветом (код
2003 и старше) с помощью их модуле, который можно
- Чтобы записать макрос, нужно
- сочетание «горячих клавиш»
- FormatData
Excel попросит Вас ячейки на листе,
отформатированную таблицу и а в случае
можно получать эффективные Далее записываем сам
вставляют, например, hh применять шифрование начального любой версии Excel.Сохранить в…
= 6) и для этого идем объединения с использованием просмотреть в редакторе включить режим записи. для быстрого вызова. настроить некоторые параметры для этого воспользуйтесь сформировать итоги в суммарной величины — инструменты для ведения код. Считаем, что (это значит, что кода и установку Мы добавим кнопку- здесь задается
затем проходит в в меню макроса. Автоматизированное форматирование Visual Basic. Редактор Это можно сделать макроса. В нашемУрок подготовлен для Вас для правильной передачи комбинацией клавиш каждой строке. (ItogF – ItogP). бухгалтерского учета и
нас интересуют значения запустить программку можно пароля для его запуска макроса прямо место, куда будет цикле по всемСервис — Макрос - больших таблиц. можно запустить нажатием на вкладке случае, это Ctrl+М.
командой сайта office-guru.ru данных в таблицу.Ctrl+AКак уже было сказано,Результаты опять же сразу осуществления финансовых расчетов. для 10 ячеек. будет блиц-командой «Ctrl+h»). просмотра. на рабочий лист, сохранен текст макроса, ячейкам, заменяя формулы Редактор Visual Basic
Как разъединить объединенные ячейкиAlt+F11
Выполнение макроса в Excel
Вид Набираем данную комбинациюИсточник: http://www.howtogeek.com/162975/geek-school-learn-how-to-use-excel-macros-to-automate-tedious-tasks/Когда импорт будет закончен,, либо щелкните по макрос – это записываются в соответствующие
- Функции обработки массивов. К
- Код выглядит следующим Нажимают Enter.
Именно с этими понятиями как графический объект. т.е. набор команд на значения. В(Toos — Macro - в Excel используя(одновременное нажатие клавиш(View) в разделе на клавиатуре, послеПеревел: Антон Андронов зайдите в меню иконке код, написанный на ячейки, поэтому нет ним относятся Array,
образом.Теперь, когда уже запущена нужно разобраться тем, Для этого: на VBA из конце выводится окно Visual Basic Editor) макрос.AltМакросы чего макрос запускается.Автор: Антон АндроновMacrosВыделить все языке программирования VBA. необходимости их присваивания IsArray; LBound; UBound.For i = 1 запись макроса, производят кто собирается работатьВ Excel 2003 и
которых и состоит сообщения (MsgBox)..Как автоматически отменитьи(Macros) или вКак видим, макрос выполнил
Макросы программы Microsoft Excel(Макросы) на вкладке, которая находится на Но в Excel переменным.Функции VBA Excel для
to 10 Next копирование содержимого какой-либо в среде VBA. старше — откройте макрос.:С ходу ясно, чтоВ новых версиях (Excel объединение для всехF11
меню в точности все позволяют значительно ускоритьView пересечении заголовков строк Вы можете создатьПеред запуском созданной программы, строки. Это достаточноКоманда переводится на «человеческий»
ячейки в другую. Прежде всего необходимо панель инструментовЭта книга вот так сразу, 2007 и новее) выделенных ячеек по).Сервис те действия, которые работу с документами(Вид) и выберите и столбцов. Затем программу, не написав требуется сохранить рабочую многочисленная группа. В язык, как «Повторять
Заглянем под капот: Как работает макрос?
Возвращаются на исходную понять, что такоеФормы- макрос сохраняется без предварительной подготовки для этого нужно строкам и столбцамКод находится в одном(Tools), если у были записаны ранее. в этом табличном команду нажмите и строчки кода,
книгу, например, под нее входят, например, от 1 до пиктограмму. Нажимают на объект. В Excelчерез меню в модуль текущей и опыта в сначала отобразить вкладку сохранив и заполнив из модулей, которые Вас Excel 2003.Для того, чтобы отредактировать
редакторе. Это достигаетсяView MacrosComma Style что мы и названием «Отчет1.xls». функции Space для 10 с шагом «Запись макроса». Это в этом качествеВид — Панели инструментов книги и, как программировании вообще иРазработчик (Developer) текст, которых содержится расположены в окне Ниже на картинках макрос, снова жмем путем автоматизации повторяющихся(Макросы).(Формат с разделителями) сделаем прямо сейчас.
Добавим ещё один шаг к нашей задаче…
Клавишу «Создать отчетную таблицу» создания строки с один». действие означает завершение выступают лист, книга, — Формы (View следствие, будет выполнятся на VBA в. Выбираем в них?Project показано, как выглядят на кнопку «Макросы». действий, записанных вВ открывшемся диалоговом окне на вкладкеЧтобы создать макрос, откройте
- требуется нажать всего числом пробелов, равныхЕсли ставится задача получить программки. ячейка и диапазон.
- — Toolbars - только пока эта частности, сложновато будетФайл — Параметры -
- Как объединить столбцы вслева от области эти меню. В открывшемся окне специальный код. Давайте мы увидим строкуHomeView
- 1 раз после целочисленному аргументу, или
- столбец с квадратами,Далее:
- Данные объекты обладают Forms) книга открыта в
сообразить какие именно Настройка ленты (File Excel используя макрос. редактирования. Если дваждыЗапись макроса в современных выбираем нужный макрос,
разберем, как создать с именем нашего(Главная).(Вид) > ввода заголовочной информации. Asc для перевода например, всех нечетныхвновь переходят на строку специальной иерархией, т.е.В Excel 2007 и
Excel команды и как
— Options -
Автоматическое горизонтальное объединение
кликнуть по
office-guru.ru
Создание макросов в программе Microsoft Excel
версиях Excel (2007 и кликаем по макросы в программе макросаДалее, изменим внешний видMacros Следует знать и символов в код чисел из диапазона «Макросы»; подчиняются друг другу. новее — откройте
Новая книга надо вводить, чтобы
Способы записи макросов
Customize Ribbon) всех выделенных ячеек
- Module1
- и новее):
кнопке «Изменить». Excel, и какFormatData заголовков столбцов и(Макросы) > другие правила. В ANSI. Все они от 1 дов списке выбирают «МакросГлавным из них является выпадающий список- макрос сохраняется макрос автоматически выполнял
и включаем в по столбцам таблицыв окнеЗапись макроса в ExcelОткрывается Microsoft Visual Basic их можно отредактировать.. Выберите его и строк:
Автоматическая запись макросов
Record Macro частности, кнопка «Добавить имеют широкое применение 11, то пишем:
1»; Application, соответствующий самойВставить (Insert) в шаблон, на все действия, которые, правой части окна
с помощью VBAProject 2003: (VBE) – среда,Скачать последнюю версию нажмитеЖирное начертание шрифта.(Запись макроса…) строку» должна нажиматься и позволяют работатьFor i = 1нажимают «Выполнить» (то же программе Excel. Затемна вкладке
основе которого создается например, Вы делаете флажок макроса. Как одновременно, то справа появитсяДалее откроется диалоговое окно где происходит редактирование ExcelRunВыравнивание по центру.Дайте своему макросу имя каждый раз после
со строками в to 10 step действие запускается начатием следуют Workbooks, Worksheets,Разработчик (Developer) любая новая пустая для создания еженедельногоРазработчик (Developer) объединить ячейки в код записанного макроса.Запись макроса макросов.
Макрос можно записать двумя(Выполнить).Заливка цветом. (без пробелов) и ввода в таблицу «Эксель», создавая приложения, 1 Next.
сочетания клавиш «Ctrl+hh»). а также Range.
книга в Excel, отчета для руководства. Теперь на появившейся нескольких выделенных диапазонах?Записывая макрос, Excel всегда(Record Macro), какЗапись каждого макроса начинается способами:
Когда макрос начнёт работать,И, наконец, настроим формат нажмите значений по каждому
значительно облегчающие работуЗдесь step — шаг.В результате происходит действие, Например, для обращенияВыберите объект т.е. макрос будет
Запуск макроса
компании. Поэтому мы вкладке нам будутКак объединить ячейки в создаёт процедуру показано на картинке с команды Sub,автоматически; Вы увидите, как
итоговых значений.ОК виду деятельности. После с этими таблицами. В данном случае которое было осуществлено к ячейке A1
Кнопка (Button): содержаться во всех переходим ко второму доступны основные инструменты Excel с помощьюSub ниже: а заканчивается командойвручную. табличный курсор прыгаетВот так это должно.
занесения всех данныхФункции преобразования типа данных. он равен двум. в процессе записи
Редактирование макроса
на конкретном листеЗатем нарисуйте кнопку на новых книгах, создаваемых способу создания макросов, для работы с кода макроса VBA.(не
Здесь, по желанию, можно End Sub. СразуВоспользовавшись первым вариантом, вы с ячейки на
выглядеть в итоге:Начиная с этого момента, требуется нажать кнопку Например, CVar возвращает По умолчанию отсутствие макроса. следует указать путь листе, удерживая левую на данном компьютере а именно… макросами, в томКак можно быстроFunction ввести имя и же после команды
просто записываете определенные ячейку. Через несколькоЕсли Вас все устраивает,
ВСЕ Ваши действия
«Закончить» и затем
значение аргумента Expression, этого слова вИмеет смысл увидеть, как
с учетом иерархии. кнопку мыши. Автоматически начиная с текущегоМакрорекордер числе и нужная объединять ячейки для). Если при создании описание для макроса. Sub указывается имя действия в программе
секунд с данными остановите запись макроса. с документом записываются: переключиться в окно преобразовав его в цикле означает, что выглядит код. ДляЧто касается понятия «коллекция», появится окно, где момента- это небольшая нам кнопка таблиц со сложной макроса к нему Рекомендуется давать макросу макроса. Оператор «Range(«…»).Select» Microsoft Excel, которые будут проделаны теПоздравляем! Вы только что изменения ячеек, пролистывание «Эксель».
тип данных Variant. шаг единичный. этого вновь переходят то это группа нужно выбрать макрос,Личная книга макросов программа, встроенная вРедактор Visual Basic структурой используя простые было прикреплено сочетание такое имя, чтобы, указывает выбор ячейки. выполняете в данный же операции, что самостоятельно записали свой таблицы, даже изменениеТеперь вы знаете, как
Написание кода макроса с нуля
Функции работы с датами.Полученные результаты нужно сохранять на строку «Макросы» объектов того же который должен запускаться- это специальная Excel, которая переводит(Visual Basic Editor) макросы? Пример готового клавиш, то именно вернувшись к нему Например, при команде
момент времени. Потом, и при записи первый макрос в
размера окна. решать задачи для
Они значительно расширяют в ячейки с и нажимают «Изменить» класса, которая в при щелчке по книга Excel с любое действие пользователя: VBA кода макроса с его помощью спустя некоторое время, «Range(«C4»).Select» выбирается ячейка можно будет воспроизвести макроса. Когда всё Excel.
Excel сигнализирует о том,
lumpics.ru
Запись макроса в Excel
Excel с помощью стандартные возможности «Эксель». номером (i,1). Тогда или «Войти». В записи имеет вид нарисованной кнопке. именем на язык программированияК сожалению, интерфейс редактора для объединения ячеек. запустить макрос будет можно было без C4. Оператор «ActiveCell.FormulaR1C1» эту запись. Данный будет готово, таблицаЧтобы использовать созданный макрос,
что включен режим макросов. Умение применять Так, функция WeekdayName при каждом запуске результате оказываются в ChartObjects. Ее отдельныеСоздание пользовательских функций или,Personal.xls VBA и записывает VBA и файлыКак запустить макрос в проще всего. Существует труда понять, для используется для записи способ очень легкий,
цикла с увеличением среде VBA. Собственно, элементы также являются как их иногда, которая используется как
получившуюся команду в справки не переводятся Excel разными способами. и другой способ чего этот макрос действий в формулах, и не требует же, как и документ Excel в двух местах. Во-первых, программ см. выше) или частичное) дня i на величину сам код макроса объектами. еще называют, UDF-функций хранилище макросов. Все программный модуль. Если компанией Microsoft на
Как выполнить макрос запустить макрос: нужен. Так или и для других знания кода, но оригинал, который мы формате, который поддерживает в меню может понадобиться и недели по его шага автоматически будет находится между строкамиСледующее понятие — свойства. (User Defined Functions) макросы из
мы включим макрорекордер русский язык, поэтому с помощью кнопки,Нажмите иначе, если не расчетов. применение его на форматировали вручную, только макросы. Для началаMacros для работы в номеру. Еще более расти и номер Sub Макрос1() и Они являются необходимой принципиально не отличается
Personal.xls на запись, а с английскими командами панели быстрого запускаAlt+F8 ввести для макросаПопытаемся немного изменить макрос. практике довольно ограничено. с другими данными
загружаются в память затем начнем создавать в меню и и стандартными средствами(одновременно нажмите клавиши имя, то Excel Для этого, вРучная запись макросов, наоборот, в ячейках.
Параметр «Относительные ссылки»
данные из созданной строки на данный момент Он выдает число образом, произойдет оптимизацияЕсли копирование было выполнено, Например, для Range в обычном программном при старте Excel свой еженедельный отчет, окнах придется смириться: на панели инструментовAlt автоматически назовёт его макрос допишем выражение: требует знаний программирования,Как уже не раз
нами таблицы, т.е.Record Macro текстового редактора «Ворд». секунд, которые прошли кода. например, из ячейки — это Value модуле. Разница только и могут быть то макрорекордер начнетМакросы (т.е. наборы команд
Просмотр кода VBA
А1 в ячейку или Formula. в том, что запущены в любой записывать команды вслед на языке VBA)Личная книга макросов вF8,ActiveCell.FormulaR1C1 = «11» набирается вручную с это программный код
пустой шаблон. Дело строка путем записи, как конкретного момента дня. выглядеть, как: C1, то однаМетоды — это команды, макрос выполняет последовательность момент и в за каждым нашим хранятся в программных Excel и как
Запуск записанного макроса в Excel
);Макрос2Выражение «ActiveCell.FormulaR1C1 = «=R[-3]C+R[-2]C+R[-1]C»» клавиатуры. Но, грамотно на языке программирования в том, чтоStop Recording показано в самомФункции для преобразования числовогоSub program() из строк кода показывающие, что требуется действий с объектами любой книге.
- действием и, в модулях. В любой ее использовать.В появившемся списке макросови так далее. заменим на «ActiveCell.FormulaR1C1 написанный таким образом
- Visual Basic for Applications в дальнейшем, работая(Остановить запись).
- начале статьи, или аргумента в разныеFor i = 1 будет выглядеть, как
Ограничения
сделать. При написании книги (ячейками, формуламиПосле включения записи и итоге, мы получим книге Excel мыРабота с личной выберите тот, которыйЗдесь же можно назначить = «= R[-4]C+R[-3]C+R[-2]C+R[-1]C»». код, может значительно(VBA). Когда Вы с этим шаблоном,
- Во-вторых, в нижнем левом
- через написание кода системы счисления. Например, To 10 Step
- Range(“C1”).Select. В переводе
- кода в VBA и значениями, листами,
выполнения действий, которые макрос создающий отчет можем создать любое книгой макросов и нужно запустить; сочетание клавиш дляЗакрываем редактор, и запускаем ускорить выполнение процессов. включаете режим записи мы будем импортировать углу окна Excel. создавать кнопки меню, Oct выдает в 1 (можно записать это выглядит, как их необходимо отделять диаграммами и т.д.), необходимо записать, запись как если бы количество программных модулей краткий обзор ее
Нажмите кнопку запуска записанного макроса. макрос, как иПрежде, чем начать автоматическую макроса, Excel фактически в него самые Иконка благодаря которым многие восьмеричное представление числа. просто For i «Диапазон(“C1”).Выделить», иными словами от объекта точкой. а пользовательская функция можно остановить командой он был написан и разместить там преимуществ. Где находитьсяВ
Запускать макрос таким в прошлый раз.
запись макросов, нужно
записывает каждое сделанное
свежие и актуальные
office-guru.ru
Возможности макросов в Excel исходные коды и описание
Стоп операции над текстомФункции форматирования. Важнейшей из = 1 To осуществляет переход в Например, как будет
Примеры возможностей макросов с описанием кодов
— только сОстановить запись программистом. Такой способ
наши макросы. Один личная книга макросовыполнить способом будет значительно Как видим, вследствие включить макросы в Вами действие в данные.(маленький квадратик) указывает
можно будет осуществлять них является Format. 10) VBA Excel, в показано в дальнейшем, теми значениями, которые(Stop Recording) создания макросов не модуль может содержать и как записывать
(Run). проще. Однако будьте введенных нами изменений программе Microsoft Excel. виде инструкций наЧтобы очистить все ячейки на то, что нажатием дежурных клавиш Она возвращает значение
Cells(i, 1).Value = i ячейку С1. очень часто при мы передадим ей. требует знаний пользователя любое количество макросов. в нее своиИнструмент Excel для записи
осторожны! Если случайно была добавлена ещёДалее, переходим во вкладку языке VBA. По-простому, от данных, щёлкните включен режим записи или через вкладку типа Variant с ^ 2 (т.е.Активную часть кода завершает
программировании в «Эксель» как аргументы (исходныеУправление всеми доступными макросами о программировании и Доступ ко всем макросы? макросов – это назначить для макроса одна ячейка с
«Разработчик». Кликаем по Excel пишет программный правой кнопкой мыши макроса. Нажатие на «Вид» и пиктограмму выражением, отформатированным согласно в ячейку (i,1) команда ActiveSheet.Paste. Она используют команду Cells(1,1).Select.
данные для расчета). производится в окне, VBA и позволяет модулям осуществляется сКак создать и добавить очень простой способ одно из предустановленных данными. Она также кнопке «Запись макроса», код вместо Вас. по иконке
неё остановит запись. «Макросы». инструкциям, которые заданы записывается значение квадрата означает запись содержания Она означает, чтоЧтобы создать пользовательскую функцию которое можно открыть пользоваться макросами как
помощью окна Project надстройку в Excel создавать код VBA, клавиатурных сочетаний Excel была включена в которая расположена наЧтобы увидеть этот программныйВыделить все
exceltable.com
Создание макросов и пользовательских функций на VBA
Введение
И наоборот, когдаАвтор: Наира в описании формата. i) выделенной ячейки (в необходимо выбрать ячейку для расчета, например, с помощью кнопки неким аналогом видеозаписи: Explorer в левом с кодом VBA. но подходит он (например, расчет общей суммы. ленте в блоке код, нужно в, которая находится на режим записи неЧто такое Макрос?и пр.Next (в некотором смысле данном случае А1) с координатами (1,1) налога на добавленнуюМакросы (Macros) включил запись, выполнил верхнем углу редактораПрактическое пошаговое руководство только для созданияCtrl+CВ случае, если макрос инструментов «Код». меню пересечении заголовков строк включен, в этом
Создание макроса – практическийИзучение свойств этих функций играет роль счетчика в выделенную ячейку т.е. A1. стоимость (НДС) откроемна вкладке операци, перемотал пленку (если его не по созданию надстроек самых простых макросов.), то в дальнейшем слишком большой, егоОткрывается окно настройки записи
Macros и столбцов, и месте находится иконка пример и их применение и означает еще С1.Вместе с ней нередко редактор VBA, добавимРазработчик (Developer) и запустил выполнение видно, нажмите CTRL+R). с VBA кодом Дело в том,
Способ 1. Создание макросов в редакторе Visual Basic
макрос может быть выполнение может занять макроса. Тут можно(Макросы) на вкладке из контекстного меню для включения записиВыполнение макроса в Excel
- позволит значительно расширить один запуск цикла)Циклы VBA помогают создавать используется Selection.ClearContents. Ее новый модуль черезили — в тех же действий Программные модули бывают программ макросов. Управление,
- что этот инструмент запущен случайно. значительное время. Но, указать любое имяView выберите пункт макроса. Нажатие наЗаглянем под капот: Как сферу применения «Эксель».End Sub. различные макросы в выполнение означает очистку меню старых версиях Excel еще раз. Естественно нескольких типов для редактирование и удаление не умеет использоватьКогда макросу дано подходящее путем внесения ручного макроса, если установленное(Вид) кликнуть Delete
неё даст тот
работает макрос?Попробуем перейти к решениюЕсли все сделано правильно, Excel. содержимого выбранной ячейки.Insert — Module — через меню у такого способа
разных ситуаций: надстроек из программы. многие возможности VBA, имя и (при изменения в код, по умолчанию васView Macros(Удалить). же результат, чтоДобавим ещё один шаг более сложных задач. в том числеЦиклы VBA помогают создаватьПрежде всего требуется создатьи введем тудаСервис — Макрос - есть свои плюсыОбычные модулиКак написать макрос в такие как: желании) задано сочетание
- мы можем ускорить не устраивает. Главное,(Макросы) и вТеперь наш лист полностью и включение записи к нашей задаче… Например: запись и запуск различные макросы. Предположим, файл и сохранить текст нашей функции: Макросы и минусы:- используются в Excel на языкеКонстанты, переменные и массивы; клавиш, нажмите процесс. Добавляем команду
- чтобы имя это открывшемся диалоговом окне очищен от всех через меню.Excel располагает мощнейшей, ноДан бумажный документ отчета макроса (см. инструкцию что имеется функция его, присвоив имяОбратите внимание, что в(Tools — Macro -Макрорекордер записывает только те большинстве случаев, когда программирования VBA.
- ВыраженияОК «Application.ScreenUpdating = False». начиналось с буквы, нажать данных, при этомТеперь, когда режим записи в то же фактического уровня издержек выше), то при y=x + x2 и выбрав тип отличие от макросов Macros) действия, которые выполняются речь идет оКак создать макрос
IF, чтобы запустить запись Она позволит сохранить
а не сEdit макрос остался записан. макроса включен, давайте время очень редко
- предприятия. Требуется: его вызове каждый + 3×3 – «Книга Excel с функции имеют заголовок: в пределах окна макросах. Для создания с помощью редактора;
- макроса. С этого вычислительные мощности, а цифры. Также, в(Изменить).
- Нам нужно сохранить займёмся нашей задачей. используемой, возможностью создаватьразработать его шаблонную часть раз будет получаться cos(x). Требуется создать поддержкой макросов».FunctionЛюбой выделенный в списке Microsoft Excel. Как такого модуля выберите кода языка программированияЦиклы; момента каждое действие значит ускорить работу. названии не должноОткроется окно книгу, как шаблон Первым делом, добавим
автоматически выполняющиеся последовательности посредством табличного процессора столбец заданного размера макрос для полученияЗатем необходимо перейти ввместо макрос можно запустить только вы закрываете в меню Visual Basic forОбращения к встроенным функциям (ввод данных, выделение Это достигается путем быть пробелов. МыVisual Basic for Applications Excel с поддержкой заголовки для итоговых действий с помощью «Эксель»;
Способ 2. Запись макросов макрорекордером
(в данном случае ее графика. Сделать приложение VB, дляSub кнопкой Excel или переключаетесьInsert — Module Application? Краткий обзор или внешним процедурам. ячеек, изменение формата отказа от обновления оставили название по, в котором мы макросов, который имеет данных. макросов. Макрос –составить программу VBA, которая состоящий из 10 это можно только, чего достаточно воспользоватьсяи непустой списокВыполнить в другую программу. В появившееся окно основных возможностей макросов.Как уже было сказано, ячеек, пролистывание листа экрана во время умолчанию – «Макрос1». увидим программный код расширениеДалее, введите в ячейки идеальный выход, если будет запрашивать исходные ячеек). используя циклы VBA.
- комбинацией клавиш «Alt» аргументов (в нашем(Run) — запись останавливается. нового пустого модуля 1 2 3 инструмент записи макросов и так далее)
- выполнения вычислительных действий.Тут же, при желании, записанного нами макроса.XLTM формулы в соответствии Вы имеете дело данные для ееВ повседневной жизни сплошьЗа начальное и конечное и «F11». Далее: случае это.
- Макрорекордер может записать только можно вводить команды 4 может создавать только будет записано в Чтобы возобновить обновление можно установить сочетание Да, Вы правильно. с названиями заголовков с однотипной задачей, заполнения, осуществлять необходимые и рядом возникает значение аргумента функциив строке меню, расположенном
Summa
- Кнопка те действия, для на VBA, набираяВсем нам приходится - процедуры макрос и сохранено после выполнения макроса,
- клавиш, при нажатии поняли, здесь этотВажный момент! (даны варианты формул которая повторяется множество расчеты и заполнять
необходимость принять то берут x1=0 и в верхней части). После ввода кодаПараметры
- которых есть команды их с клавиатуры кому реже, комуSub в виде кода в его конце на которые макрос код можно изменить
- Если Вы сохраните для англоязычной и раз. Например, обработка ими соответствующие ячейки или иное решение x2=10. Кроме того, окна, нажимают на наша функция становится(Options) меню или кнопки или копируя их чаще — повторять, так как не VBA. пишем команду «Application.ScreenUpdating будет запускаться. Первой и даже создать файл с расширением русифицированной версии Excel,
- данных или форматирование шаблона. в зависимости от необходимо ввести константу иконку рядом с доступна в обычномпозволяет посмотреть и в Excel. Программист
-
- из другого модуля, одни и те может возвращать значение.При включении режима записи = True» клавишей обязательно должна новый макрос. ТеXLTX
- адреса ячеек – документов по стандартизированномуРассмотрим один из вариантов какого-то условия. Не — значение для иконкой Excel; окне Мастера функций отредактировать сочетание клавиш же может написать с этого сайта же действия и Процедурам
- макроса в строкеДобавим также команду «Application.Calculation быть клавиша Ctrl, действия, которые мы, то макрос в всегда латинские буквы шаблону. При этом решения. обойтись без них шага изменения аргументавыбирают команду Mudule; ( для быстрого запуска макрос, который делает или еще откуда
операции в Excel.Sub состояния (внизу слева) = xlCalculationManual» вначале а вторую клавишу совершали с таблицей нём работать не
Запуск и редактирование макросов
и цифры): Вам не требуетсяВсе действия осуществляются на и в VBA и начальное значениесохраняют, нажав на иконкуВставка — Функция макроса. то, что Excel нибудь: Любая офисная работанельзя передавать какие-либо появляется кнопка кода, а в пользователь устанавливает самостоятельно.
- в этом уроке, будет. Кстати, можно=SUM(B2:K2) знание языков программирования. стандартном листе в Excel. Примеры программ,
- для счетчика. с изображением floppy ) в категорииКнопка никогда не умелМодуль Эта книга предполагает некую «рутинную
- аргументы, хотя ониСтоп конце кода дописываем Например, мы, в вполне можно записать сохранить книгу какилиВам уже любопытно, что
Создание кнопки для запуска макросов
Excel. Резервируются свободные где дальнейший ходВсе примеры макросов VBA disk;Определенные пользователем (User Defined)Изменить (сортировку по цвету,
- также виден составляющую» — одни могут распознавать текущие
. В Excel 2003 «Application.Calculation = xlCalculationAutomatic». качестве примера, установили с помощью автоматической шаблон Excel 97-2003,=СУММ(B2:K2) такое макрос, и ячейки для внесения выполнения алгоритма выбирается, Excel создаются попишут, скажем так, набросок :(Edit)
например или что-то в левом верхнем и те же активные ячейки, диапазоны эта кнопка находится Этим мы вначале клавишу М. записи макроса в который имеет формат
=AVERAGE(B2:K2) как он работает? данных по месяцу,
а не предопределен той же процедуре, кода.После выбора функции выделяемоткрывает редактор Visual подобное). углу редактора Visual еженедельные отчеты, одни или листы, а на плавающей панели
макроса отключаем автоматическийДалее, нужно определить, где Excel. Но болееXLTили Тогда смелей вперёд году, названию компании-потребителя, изначально, чаще всего которая представлена выше.Он выглядит следующим образом:
ячейки с аргументами
Basic (см. выше)Если во время записи Basic в окне, и те же также значения, хранящиеся инструментов. пересчет результата после
- будет храниться макрос. сложные макросы, с, он тоже поддерживает=СРЗНАЧ(B2:K2) – далее мы сумме издержек, их используют конструкцию If В данном конкретномSub program ()
- (с суммой, для и позволяет просмотреть макроса макрорекордером вы которое называется Project действия по обработке в ячейках книги.Кнопка
каждого изменения ячеек, По умолчанию, он
тонко настроенной последовательностью макросы.=MIN(B2:K2) шаг за шагом уровня, товарооборота. Так …Then (для сложных случае код выглядит,’Наш код
Создание пользовательских функций на VBA
которой надо посчитать и отредактировать текст ошиблись — ошибка Explorer. В этот поступивших данных, заполнение Кроме того, нужноСтоп а в конце будет храниться в и логикой действийКогда шаблон сохранён, можноили проделаем весь процесс как количество компаний случаев) If …Then как:End Sub НДС) как в макроса на VBA. будет записана. Однако
модуль обычно записываются однообразных таблиц или сказать, что сгенерированныйв строке состояния макроса – включаем. этой же книге требуют программирования вручную. спокойно закрыть Excel.=МИН(B2:K2) создания макроса вместе
(обществ), относительно которых …END If.Sub programm()Обратите внимание, что строка случае с обычнойЧтобы не запоминать сочетание смело можете давить макросы, которые должны бланков и т.д. код не всегда в Excel 2007 Таким образом, Excel (файле), но приПредставьте, что наш исходныйПрежде чем раскрыть все=MAX(B2:K2) с Вами. составляется отчет, неРассмотрим конкретный случай. Предположим,
x1 = 1 «’Наш код» будет функцией: клавиш для запуска на кнопку отмены выполнятся при наступлении Использование макросов и
planetaexcel.ru
является оптимальным для
Работа с книгами
Макрос 1. Создание новой рабочей книги с нуля
Макроc 2. Сохранение книги при изменении определенной ячейки/диапазона
Макрос 3. Сохранение рабочей книги перед закрытием
Макрос 4. Защита рабочего листа в книге перед закрытием
Макрос 5. Снятие защиты с листа при открытии Excel-файла
Макрос 6. Открыть книгу на нужном листе
Макрос 7. Открытие конкретной книги, определенной пользователем
Макрос 8. Определяем, открыта ли книга
Макрос 9. Определяем, существует ли книга в папке
Макрос 10. Обновляем все связи в открытых книгах
Макрос 11. Закрываем сразу все книги
Макрос 12. Открыть все рабочие книги в папке
Макрос 13. Распечатать все книги в папке
Макрос 14. Не даем закрыть книгу до тех пор, пока не заполнит ячейку
Макрос 15. Создаем резервную копию текущей книги с сегодняшней датой
Работа с листами
Макрос 16. Добавляем новый рабочий лист и присваиваем имя
Макрос 17. Удалить все листы, кроме активного
Макрос 18. Скрыть все, кроме активного рабочего листа
Макрос 19. Отобразить все листы книги
Макрос 20. Перемещение рабочих листов
Макрос 21. Сортировка листов по названию
Макрос 22. Группа листы по Цвету ярлычка
Макрос 23. Скопировать лист в новую книгу
Макрос 24. Создать новую рабочую книгу для каждого листа
Макрос 25. Печать листов
Макрос 26. Защитить все листы
Макрос 27. Снять защиту со всех листов
Макрос 28. Создание оглавления
Макрос 29. Изменение масштаба изображения рабочего листа с помощью двойного щелчка
Макрос 30. Выделить столбец активной строки
Выделение и изменение диапазонов
Макрос 31. Выбор и форматирование диапазона
Макрос 32. Создание и выбор именованных диапазонов
Макрос 33. Перебор с помощью ряда клеток
Макрос 34. Выбор и форматирование диапазонов
Макрос 35. Вставка пустых строк в диапазоне
Макрос 36. Отобразить все скрытые строки и столбцы
Макрос 37. Удаление пустых строк
Макрос 38. Удаление пустых столбцов
Макрос 39. Выбор и форматирование всех формул в рабочем журнале
Макрос 40. Найдите и выберите первую пустую строку или столбец
Макрос 41. Применить дополнительный цвет заливки
Макрос 42. Отсортировать диапазоны по двойному щелчку
Макрос 43. Ограничение диапазона прокрутки в той или иной области
Макрос 44. Автоматически задать область печати листа
Работа с данными
Макрос 45. Копирование и вставка диапазона
Макрос 46. Преобразование всех формул в диапазоне в значения
Макрос 47. Преобразуем текстовых значений в числовые
Макрос 48. Преобразование тире в минус
Макрос 49. Удаляем лишние пробелы из всех ячеек в диапазоне
Макрос 50. Отсекаем слева 5 знаков в каждой ячейки диапазона
Макрос 51. Добавляем в ячейку недостающие нули
Макрос 52. Заменить пустые ячейку нулём
Макрос 53. Добавление текста в начало или конец ячейки
Макрос 54. Создание макроса преобразования данных
Макрос 55. Очистка данных (непечатаемые символы)
Макрос 56. Выделим дубликаты в диапазоне данных
Макрос 57. Скрываем повторяющиеся строки
Макрос 58. Выборочно скрываем стрелки автофильтра
Макрос 59. Копируем отфильтрованные строки в новую книгу
Макрос 60. Создание нового листа для каждого элемента в Автофильтре
Макрос 61. Показать отфильтрованные столбцы в строке состояния
Работа со сводными таблицами
Макрос 62: Создание обратной совместимости сводной таблицы
Макрос 63. Обновление всех сводных таблиц книги
Макрос 64. Создание «описи» всех сводной таблицы книги
Макрос 65. Создаем все сводные таблицы, используя тот же кэш данных
Макрос 66. Скрываем все промежуточные итоги в сводной таблице
Макрос 67. Изменяем названия данных всех полей сводной
Макрос 68. Принудительное суммирование для всех данных сводной
Макрос 69. Применить числовой формат для всех элементов данных
Макрос 70. Сортировка полей сводной в алфавитном порядке
Макрос 71. Применить пользовательскую сортировку к элементам данных
Макрос 72: Ставим защиту на сводную таблицу
Макрос 73. Применять ограничения сводного поля
Макрос 74. Автоматическое удаление листов с детализацией сводной
Макрос 75. Печать сводной таблицы для каждого элемента фильтра
Макрос 76. Создание нового файла для каждого элемента фильтра
Макрос 77. Готовим диапазон данных для сводной таблицы
Работа с диаграммами и графиками
Макрос 78. Изменение размера диаграмм на рабочем листе
Макрос 79. Привязываем график к определенному диапазону
Макрос 80. Создание набора бессвязных диаграмм
Макрос 81. Печать всех диаграмм на рабочем листе
Макрос 82. Отмечаем лучшее и худшее значение на
Макрос 83. Одинаковые цвета для значений на разных диаграммах
Макрос 84. Соответствие цвета диаграмм цвету диапазонов
Макрос 85. Отправка активной книги почтой (вложение)
Макрос 86. Отправка диапазон значений в качестве вложения
Макрос 87. Отправка одного листа в качестве вложения
Макрос 88. Отправить письмо с ссылкой на наши файлы
Макрос 89: Рассылка писем с добавлением адресов в наш список контактов
Макрос 90. Сохранение всех вложений в отдельной папке
Макрос 91. Сохранение определенных вложений в папку
Взаимодействие с другими приложениями Office
Макрос 92. Запуск запроса доступа из Excel
Макрос 93. Запуск макроса Access из Excel
Макрос 94. Открытие отчета Access из Excel
Макрос 95. Открытие формы доступа из Excel
Макрос 96. Сжатие базы данных Access из Excel
Макрос 97. Отправка данных Excel в документ в формате Word
Макрос 98. Делаем Слияние с документом в формате Word
Макрос 99. Отправка данных Excel в презентации PowerPoint
Макрос 100. Отправка Excel диаграмм в PowerPoint презентации
Макрос 101. Преобразование рабочей книги в презентации PowerPoint
Взаимодействие с другими приложениями Office
научимся работать с Word, Access и PowerPoint
Макрос 92. Запуск запроса доступа из Excel
Макрос 93. Запуск макроса Access из Excel
Макрос 94. Открытие отчета Access из Excel
Макрос 95. Открытие формы доступа из Excel
Использование макросов Excel может ускорить работу и сэкономить много времени.
Один из способов получить код VBA — записать макрос и взять код, который он генерирует. Однако этот код макроса записи часто полон кода, который на самом деле не нужен. Также у макро-рекордера есть некоторые ограничения.
Поэтому стоит иметь коллекцию полезных макрокодов VBA, которые можно носить в заднем кармане и использовать при необходимости.
Хотя написание макрокода Excel VBA на начальном этапе может занять некоторое время, после его завершения вы можете сохранить его доступным в качестве справочника и использовать в следующий раз, когда он понадобится.
В этой обширной статье я собираюсь перечислить несколько полезных примеров макросов Excel, которые мне часто нужны и которые я храню в моем личном хранилище.
Я буду продолжать обновлять этот учебник, добавляя больше примеров макросов. Если вы считаете, что что-то должно быть в списке, просто оставьте комментарий.
Вы можете добавить эту страницу в закладки для дальнейшего использования.
Теперь, прежде чем я перейду к примеру макроса и дам вам код VBA, позвольте мне сначала показать вам, как использовать эти примеры кодов.
Вот шаги, которые необходимо выполнить, чтобы использовать код из любого из примеров:
- Откройте книгу, в которой вы хотите использовать макрос.
- Удерживая клавишу ALT, нажмите F11. Откроется редактор VB.
- Щелкните правой кнопкой мыши любой из объектов в проводнике проекта.
- Перейдите в Insert -> Module.
- Скопируйте и вставьте код в окно кода модуля.
Если в примере говорится, что вам нужно вставить код в окно кода рабочего листа, дважды щелкните объект рабочего листа и скопируйте и вставьте код в окно кода.
После того, как вы вставили код в книгу, вам необходимо сохранить его с расширением .XLSM или .XLS.
Как запустить макрос
После того, как вы скопировали код в редакторе VB, выполните следующие действия для запуска макроса:
- Перейдите на вкладку Разработчик.
- Щелкните Макросы.
- В диалоговом окне «Макрос» выберите макрос, который нужно запустить.
- Нажмите кнопку «Выполнить».
Если вы не можете найти вкладку разработчика на ленте, прочтите это руководство, чтобы узнать, как ее получить.
Связанное руководство: различные способы запуска макроса в Excel.
Если код вставлен в окно кода рабочего листа, вам не нужно беспокоиться о его запуске. Он будет автоматически запускаться при выполнении указанного действия.
Теперь перейдем к полезным примерам макросов, которые помогут автоматизировать работу и сэкономить время.
Примечание. Вы найдете множество примеров апострофа (‘), за которым следует пара строк. Это комментарии, которые игнорируются при запуске кода и помещаются как заметки для себя / читателя.
Если вы обнаружите ошибку в статье или коде, пожалуйста, дайте мне знать.
Примеры макросов Excel
В этой статье рассматриваются следующие примеры макросов:
Показать все рабочие листы за один раз
Если вы работаете с книгой, в которой есть несколько скрытых листов, вам нужно отображать эти листы один за другим. Это может занять некоторое время, если есть много скрытых листов.
Вот код, который покажет все рабочие листы в книге.
'Этот код отобразит все листы в книге Sub UnhideAllWoksheets () Dim ws As Worksheet для каждого ws в ActiveWorkbook.Worksheets ws.Visible = xlSheetVisible Next ws End Sub
В приведенном выше коде используется цикл VBA (для каждого) для просмотра всех листов в книге. Затем он изменяет видимое свойство рабочего листа на видимое.
Вот подробное руководство о том, как использовать различные методы для отображения листов в Excel.
Скрыть все рабочие листы, кроме активного листа
Если вы работаете с отчетом или панелью мониторинга и хотите скрыть всю таблицу, кроме той, которая содержит отчет / панель мониторинга, вы можете использовать этот код макроса.
'Этот макрос скроет весь рабочий лист, кроме активного листа Sub HideAllExceptActiveSheet () Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets If ws.Name ActiveSheet.Name Then ws.Visible = xlSheetHidden Next ws End Sub
Сортировка листов по алфавиту с помощью VBA
Если у вас есть книга с большим количеством листов и вы хотите отсортировать их в алфавитном порядке, этот код макроса может оказаться действительно полезным. Это может быть так, если у вас есть имена листов в виде лет, имен сотрудников или продуктов.
'Этот код будет отсортировать листы по алфавиту Sub SortSheetsTabName () Application.ScreenUpdating = False Dim ShCount As Integer, i As Integer, j As Integer ShCount = Sheets.Count For i = 1 To ShCount - 1 For j = i + 1 To ShCount If Sheets (j) .Name <Sheets (i) .Name Then Sheets (j) .Move before: = Sheets (i) End If Next j Next i Application.ScreenUpdating = True End Sub
Защитите все рабочие листы за один раз
Если у вас много листов в книге и вы хотите защитить все листы, вы можете использовать этот код макроса.
Это позволяет вам указать пароль в коде. Этот пароль понадобится вам, чтобы снять защиту с листа.
'Этот код защитит все листы за один раз Sub ProtectAllSheets () Dim ws As Worksheet Dim password As String password = "Test123"' замените Test123 нужным паролем. Для каждого ws In Worksheets ws.Protect password: = password Далее ws Конец подписки
Снять защиту со всех листов за один раз
Если у вас есть защищенные некоторые или все рабочие листы, вы можете просто использовать небольшую модификацию кода, используемого для защиты листов, чтобы снять его защиту.
'Этот код защитит все листы за один раз. Sub ProtectAllSheets () Dim ws As Worksheet Dim password As String password = "Test123"' замените Test123 нужным паролем. For Each ws In Worksheets () ws.Unprotect password: = password Next ws Конец подписки
Обратите внимание, что пароль должен совпадать с паролем, который использовался для блокировки рабочих листов. В противном случае вы увидите сообщение об ошибке.
Показать все строки и столбцы
Этот код макроса покажет все скрытые строки и столбцы.
Это может быть действительно полезно, если вы получили файл от кого-то другого и хотите убедиться, что в нем нет скрытых строк / столбцов.
'Этот код отобразит все строки и столбцы в подменю рабочего листа UnhideRowsColumns () Columns.EntireColumn.Hidden = False Rows.EntireRow.Hidden = False End Sub
Разъединить все объединенные ячейки
Обычно ячейки объединяют в одну. Пока он выполняет свою работу, при объединении ячеек вы не сможете сортировать данные.
Если вы работаете с листом с объединенными ячейками, используйте приведенный ниже код, чтобы объединить все объединенные ячейки за один раз.
'Этот код объединит все объединенные ячейки Sub UnmergeAllCells () ActiveSheet.Cells.UnMerge End Sub
Обратите внимание, что вместо «Объединить и центрировать» я рекомендую использовать параметр «Центрировать по всему выделению».
Сохранить книгу с отметкой времени в ее имени
Много времени, возможно, вам понадобится создать версии своей работы. Они очень полезны в длинных проектах, когда вы работаете с файлом в течение долгого времени.
Хорошая практика — сохранить файл с отметками времени.
Использование временных меток позволит вам вернуться к определенному файлу, чтобы увидеть, какие изменения были внесены или какие данные были использованы.
Вот код, который автоматически сохранит книгу в указанной папке и добавит метку времени при каждом сохранении.
'Этот код сохранит файл с меткой времени в его имени Sub SaveWorkbookWithTimeStamp () Тусклая метка времени в виде строки timestamp = Format (Date, "dd-mm-yyyy") & "_" & Format (Time, "hh-ss") ThisWorkbook.SaveAs "C: UsersUsernameDesktopWorkbookName" и отметка времени End Sub
Вам необходимо указать расположение папки и имя файла.
В приведенном выше коде «C: UsersUsernameDesktop — это папка, которую я использовал. Вам необходимо указать папку, в которой вы хотите сохранить файл. Кроме того, я использовал общее имя «WorkbookName» в качестве префикса имени файла. Вы можете указать то, что связано с вашим проектом или компанией.
Сохраняйте каждый рабочий лист как отдельный PDF-файл
Если вы работаете с данными за разные годы, подразделения или продукты, вам может потребоваться сохранить разные рабочие листы в виде файлов PDF.
Хотя это может занять много времени, если выполнить его вручную, VBA действительно может его ускорить.
Вот код VBA, который сохранит каждый рабочий лист как отдельный PDF-файл.
'Этот код сохранит каждый рабочий лист как отдельный PDF-файл Sub SaveWorkshetAsPDF () Dim ws As Worksheet для каждого ws в рабочих таблицах ws.ExportAsFixedFormat xlTypePDF, "C: UsersSumitDesktopTest" & ws.Name & ".pdf" Next ws End Sub
В приведенном выше коде я указал адрес папки, в которой я хочу сохранить PDF-файлы. Кроме того, каждый PDF-файл получит то же имя, что и рабочий лист. Вам нужно будет изменить расположение этой папки (если только ваше имя не Sumit и вы не сохраняете его в тестовой папке на рабочем столе).
Обратите внимание, что этот код работает только с листами (а не с таблицами диаграмм).
Сохраняйте каждый рабочий лист как отдельный PDF-файл
Вот код, который сохранит всю вашу книгу в виде PDF-файла в указанной папке.
'Этот код сохранит всю книгу как PDF Sub SaveWorkshetAsPDF () ThisWorkbook.ExportAsFixedFormat xlTypePDF, "C: UsersSumitDesktopTest" & ThisWorkbook.Name & ".pdf" End Sub
Вам нужно будет изменить расположение папки, чтобы использовать этот код.
Преобразование всех формул в значения
Используйте этот код, если у вас есть рабочий лист, содержащий множество формул, и вы хотите преобразовать эти формулы в значения.
'Этот код преобразует все формулы в значения Sub ConvertToValues () With ActiveSheet.UsedRange .Value = .Value End With End Sub
Этот код автоматически определяет используемые ячейки и преобразует их в значения.
Защита / блокировка ячеек с помощью формул
Вы можете заблокировать ячейки с помощью формул, когда у вас много вычислений, и вы не хотите случайно удалить или изменить его.
Вот код, который заблокирует все ячейки с формулами, в то время как все остальные ячейки не заблокированы.
'Этот код макроса заблокирует все ячейки с формулами Sub LockCellsWithFormulas () с ActiveSheet .Unprotect .Cells.Locked = False .Cells.SpecialCells (xlCellTypeFormulas) .Locked = True .Protect AllowDeletingRows: = True End With End Sub
Связанное руководство: Как заблокировать ячейки в Excel.
Защитить все рабочие листы в книге
Используйте приведенный ниже код, чтобы защитить все рабочие листы в книге за один раз.
'Этот код будет защищать все листы в книге Sub ProtectAllSheets () Dim ws As Worksheet для каждого ws In Worksheets ws.Protect Next ws End Sub
Этот код будет просматривать все рабочие листы один за другим и защищать его.
Если вы хотите снять защиту со всех листов, используйте в коде ws.Unprotect вместо ws.Protect.
Вставлять строку после каждой другой строки в выделенном фрагменте
Используйте этот код, если вы хотите вставить пустую строку после каждой строки в выбранном диапазоне.
'Этот код вставит строку после каждой строки в выбранном Sub InsertAlternateRows () Dim rng As Range Dim CountRow As Integer Dim i As Integer Set rng = Selection CountRow = rng.EntireRow.Count For i = 1 To CountRow ActiveCell.EntireRow. Вставьте ActiveCell.Offset (2, 0). Выберите Next i End Sub
Точно так же вы можете изменить этот код, чтобы вставить пустой столбец после каждого столбца в выбранном диапазоне.
Автоматически вставлять дату и время в соседнюю ячейку
Отметка времени — это то, что вы используете, когда хотите отслеживать действия.
Например, вы можете отслеживать действия, например, когда были понесены конкретные расходы, в какое время был создан счет-фактура продажи, когда был произведен ввод данных в ячейку, когда последний раз обновлялся отчет и т. Д.
Используйте этот код для вставки отметки даты и времени в соседнюю ячейку, когда делается запись или редактируется существующее содержимое.
'Этот код вставит метку времени в соседнюю ячейку Private Sub Worksheet_Change (ByVal Target As Range) При ошибке GoTo Handler Если Target.Column = 1 And Target.Value "" Тогда Application.EnableEvents = False Target.Offset (0, 1) = Format (Now (), «дд-мм-гггг чч: мм: сс») Application.EnableEvents = True End If Handler: End Sub
Обратите внимание, что вам нужно вставить этот код в окно кода рабочего листа (а не в окно кода модуля, как мы это делали до сих пор в других примерах макросов Excel). Для этого в редакторе VB дважды щелкните имя листа, на котором вы хотите использовать эту функцию. Затем скопируйте и вставьте этот код в окно кода этого листа.
Кроме того, этот код заставляет работать, когда ввод данных выполняется в столбце A (обратите внимание, что в коде есть строка Target.Column = 1). Вы можете изменить это соответствующим образом.
Выделите альтернативные строки в выделенном фрагменте
Выделение альтернативных строк может значительно повысить удобочитаемость ваших данных. Это может быть полезно, когда вам нужно сделать распечатку и просмотреть данные.
Вот код, который мгновенно выделяет альтернативные строки в выделенном фрагменте.
'Этот код будет выделять альтернативные строки в выделении Sub HighlightAlternateRows () Dim Myrange As Range Dim Myrow As Range Set Myrange = Selection For Each Myrow In Myrange.Rows If Myrow.Row Mod 2 = 1 Then Myrow.Interior.Color = vbCyan End Если следующий Myrow End Sub
Обратите внимание, что в коде я указал цвет как vbCyan. Вы также можете указать другие цвета (например, vbRed, vbGreen, vbBlue).
Выделите ячейки с ошибками в написании слов
В Excel нет проверки орфографии, как в Word или PowerPoint. Хотя вы можете запустить проверку орфографии, нажав клавишу F7, нет визуальной подсказки, когда есть орфографическая ошибка.
Используйте этот код, чтобы мгновенно выделить все ячейки, в которых есть орфографическая ошибка.
'Этот код будет выделять ячейки, содержащие слова с ошибками Sub HighlightMisspelledCells () Dim cl As Range For Each cl In ActiveSheet.UsedRange If Not Application.CheckSpelling (word: = cl.Text) Then cl.Interior.Color = vbRed End If Next cl End Sub
Обратите внимание, что выделенные ячейки содержат текст, который Excel считает орфографической ошибкой. Во многих случаях он также выделяет названия или названия брендов, которых он не понимает.
Обновить все сводные таблицы в книге
Если у вас в книге несколько сводных таблиц, вы можете использовать этот код для одновременного обновления всех этих сводных таблиц.
'Этот код обновит всю сводную таблицу в подпрограмме Workbook Sub RefreshAllPivotTables () Dim PT As PivotTable для каждого PT в ActiveSheet.PivotTables PT.RefreshTable Next PT End Sub
Вы можете узнать больше об обновлении сводных таблиц здесь.
Измените регистр букв выбранных ячеек на верхний регистр
Хотя в Excel есть формулы для изменения регистра букв текста, он заставляет вас делать это в другом наборе ячеек.
Используйте этот код, чтобы мгновенно изменить регистр букв в выделенном тексте.
'Этот код изменит выделение на верхний регистр Sub ChangeCase () Dim Rng As Range For Each Rng In Selection.Cells If Rng.HasFormula = False Then Rng.Value = UCase (Rng.Value) End If Next Rng End Sub
Обратите внимание, что в этом случае я использовал UCase, чтобы сделать текстовый регистр Upper. Вы можете использовать LCase для нижнего регистра.
Выделите все ячейки комментариями
Используйте приведенный ниже код, чтобы выделить все ячейки, в которых есть комментарии.
'Этот код будет выделять ячейки с комментариями` Sub HighlightCellsWithComments () ActiveSheet.Cells.SpecialCells (xlCellTypeComments) .Interior.Color = vbBlue End Sub
В этом случае я использовал vbBlue, чтобы придать ячейкам синий цвет. Вы можете изменить его на другие цвета, если хотите.
Выделите пустые ячейки с помощью VBA
Хотя вы можете выделить пустую ячейку с помощью условного форматирования или с помощью диалогового окна «Перейти к специальному», если вам приходится делать это довольно часто, лучше использовать макрос.
После создания вы можете разместить этот макрос на панели быстрого доступа или сохранить его в своей личной книге макросов.
Вот код макроса VBA:
'Этот код выделит все пустые ячейки в Sub HighlightBlankCells () Dim Dataset как Range Set Dataset = Selection Dataset.SpecialCells (xlCellTypeBlanks) .Interior.Color = vbRed End Sub
В этом коде я указал, что пустые ячейки будут выделены красным цветом. Вы можете выбрать другие цвета, такие как синий, желтый, голубой и т. Д.
Как отсортировать данные по одному столбцу
Вы можете использовать приведенный ниже код для сортировки данных по указанному столбцу.
Sub SortDataHeader () Range ("DataRange"). Sort Key1: = Range ("A1"), Order1: = xlAscending, Header: = xlYes End Sub
Обратите внимание, что я создал именованный диапазон с именем DataRange и использовал его вместо ссылок на ячейки.
Также здесь используются три ключевых параметра:
- Key1 — это тот, по которому вы хотите отсортировать набор данных. В приведенном выше примере кода данные будут отсортированы на основе значений в столбце A.
- Порядок — здесь вам нужно указать, хотите ли вы отсортировать данные в порядке возрастания или убывания.
- Заголовок — здесь вам нужно указать, есть ли у ваших данных заголовки или нет.
Узнайте больше о том, как сортировать данные в Excel с помощью VBA.
Как отсортировать данные по нескольким столбцам
Предположим, у вас есть набор данных, как показано ниже:
Ниже приведен код, который сортирует данные по нескольким столбцам:
Sub SortMultipleColumns () с ключом ActiveSheet.Sort .SortFields.Add: = Range ("A1"), Order: = xlAscending .SortFields.Add Key: = Range ("B1"), Order: = xlAscending .SetRange Range ("A1 : C13 ") .Header = xlYes. Применить End With End Sub
Обратите внимание, что здесь я указал сначала сортировку по столбцу A, а затем по столбцу B.
Результат будет примерно таким, как показано ниже:
Как получить только числовую часть из строки в Excel
Если вы хотите извлечь только числовую часть или только текстовую часть из строки, вы можете создать пользовательскую функцию в VBA.
Затем вы можете использовать эту функцию VBA на листе (как и обычные функции Excel), и она будет извлекать из строки только числовую или текстовую часть.
Что-то вроде того, что показано ниже:
Ниже приведен код VBA, который создаст функцию для извлечения числовой части из строки:
'Этот код VBA создаст функцию для получения числовой части из строки. Функция GetNumeric (CellRef As String) Dim StringLength As Integer StringLength = Len (CellRef) For i = 1 To StringLength If IsNumeric (Mid (CellRef, i, 1) ) Затем Result = Result & Mid (CellRef, i, 1) Next i GetNumeric = Result End Function
Вам нужно поместить код в модуль, а затем вы можете использовать функцию = GetNumeric на листе.
Эта функция будет принимать только один аргумент, который является ссылкой на ячейку, из которой вы хотите получить числовую часть.
Точно так же ниже приведена функция, которая вернет вам только текстовую часть из строки в Excel:
'Этот код VBA создаст функцию для получения текстовой части из строки. Функция GetText (CellRef As String) Dim StringLength As Integer StringLength = Len (CellRef) For i = 1 To StringLength If Not (IsNumeric (Mid (CellRef, i, 1))) Затем Result = Result & Mid (CellRef, i, 1) Next i GetText = Result End Function
Итак, это некоторые из полезных кодов макросов Excel, которые вы можете использовать в своей повседневной работе для автоматизации задач и повышения производительности.