Макросы в excel примеры


18 готовых макросов VBA Excel

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

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

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

Как включить макросы в 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:\Temp\MyNewBook.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 = "[email protected]; [email protected]" .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.

Примеры макросов в Excel. Диалоговое VBA сообщение msgBox

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

Пример 1. Простое диалоговое сообщение msgBox в VBA

   Не будем отступать от традиций начала всех примеров программирования. Напишем макрос, который при запуске выдаст нам окно сообщения с надписью «Hello World». Заодно рассмотрим работу с пользовательскими диалогами.

Теперь писать макросы будем только в ручном режиме, никаких рекордеров!

Итак, для того чтоб создать макрос, Вам необходимо открыть окно всеми любимого редактора Visual Basic (VB). Для этого выполняем следующие действия: Сервис-Макрос-Редактор Visual Basic (Alt+F11).

Откроется окно редактора MS Visual Basic.

   Если у Вас отсутствуют левые окна, то их необходимо включить. Для этого нажмите F4 – Открывает окно свойств Properties Window, и сочетание клавиш Ctrl+R – открывает окно Project Explorer.  Без этих окон в дальнейшем затруднительно работать. Все! Сделали.

Что мы видим в окне Project? В данном  окне отражается как раз таки структура нашей книги. Объекты книги – Лист1, 2, 3, Эта книга. Более подробно изучим данные объекты в последующих статьях, а пока возвращаюсь к примеру.

Что необходимо сделать для того чтоб начать писать код? Необходимо создать модуль. Примечание: Вообще, в дальнейшем рекомендую разделять код обработчиков на разные модули. Это облегчит понимание кода и создаст порядок в структуре.

Создаем модуль: Insert – Module

   Перед нами открылось пустое окно модуля, напоминает блокнот. Такое окно мы уже видели, когда записывали первый макрос в прошлой статье. По правилам «хорошего тона» дадим имя нашему модулю, назовем его «MacroBook». Для этого перейдите в окно свойств и введите имя в поле (Name)

Переходим в окно редактирования кода и пишем следующее:

Готово! Открываем окно рабочей книги Excel, жмем Alt+F8 и видим наш макрос «Hello»

Остается только «Выполнить». В результате работы макроса мы получим сообщение следующего вида и содержания:

Пример 2. Расширенное диалоговое сообщение msgBox в VBA

Рассмотрим еще один вид диалоговых сообщений, которые содержат дополнительные кнопки «Да», «Нет», «Отмена»

Переходим к коду нашего макроса «Hello» и дописываем к команде msgbox следующее:

MsgBox "Hello, World!", vbYesNoCancel, "Мой макрос" 

Обратите внимание, когда вы поставите запятую после «Hello, World!», у Вас должен появиться список всех доступных типов диалоговых окон

Поэкспериментируйте с каждым для понимания.

Как Вы заметили, я добавил еще один параметр к команде msgBox – “Мой макрос”. Это подпись нашего окна. Этот параметр не обязателен, но я рекомендую все диалоги подписывать наименованием своей разработки или иной информацией.

Запустим наш макрос

Теперь у нас открылась совсем иная форма сообщения.

На этом пока все. Следите за выходом статей и уроков. Если возникли вопросы, с удовольствием отвечу, а если будет необходимо, напишу статью с пояснением.

Видео: Пример работы msgbox в vba

 

 

Пример макроса для вставки и удаления строк или столбцов на нескольких листах - Office

  • Статья
  • Чтение занимает 2 мин
  • Применяется к:
    Microsoft Excel
Были ли сведения на этой странице полезными?

Оцените свои впечатления

Да Нет

Хотите оставить дополнительный отзыв?

Отзывы будут отправляться в корпорацию Майкрософт. Нажав кнопку "Отправить", вы разрешаете использовать свой отзыв для улучшения продуктов и служб Майкрософт. Политика конфиденциальности.

Отправить

В этой статье

Примечание

Office 365 ProPlus переименован в Майкрософт 365 корпоративные приложения. Для получения дополнительной информации об этом изменении прочитайте этот блог.

Аннотация

В этой статье содержится пример макроса Microsoft Visual Basic для приложений (sub procedure), который можно использовать для вставки или удаления строк или столбцов в нескольких таблицах в Microsoft Excel.

Дополнительная информация

Корпорация Майкрософт предоставляет примеры программирования только в целях демонстрации без явной или подразумеваемой гарантии. Данное положение включает, но не ограничивается этим, подразумеваемые гарантии товарной пригодности или соответствия отдельной задаче. Эта статья предполагает, что пользователь знаком с представленным языком программирования и средствами, используемыми для создания и отладки процедур. Инженеры службы поддержки Майкрософт могут объяснить функциональность отдельной процедуры. Однако они не будут изменять эти примеры, чтобы предоставлять дополнительные функциональные возможности или создавать процедуры для удовлетворения ваших конкретных требований. Чтобы вставить или удалить строки или столбцы на нескольких листах, используйте для каждого... Следующее утверждение, чтобы выполнить цикл через все необходимые листы или выбрать строки или столбцы перед выполнением вставки или удаления.

Примечание

Следующие макросы примера работают только на состоям диапазоне столбцов или строк.

Пример макроса с помощью цикла для вставки строк в несколько листов

Sub Insert_Rows_Loop() Dim CurrentSheet As Object ' Loop through all selected sheets. For Each CurrentSheet In ActiveWindow.SelectedSheets ' Insert 5 rows at top of each sheet. CurrentSheet.Range("a1:a5").EntireRow.Insert Next CurrentSheet End Sub 

Пример макроса для выбора столбца и вставки нового столбца

В следующем примере макрос выбирает весь столбец перед вставкой новых столбцов:

Sub Select_Insert_Column() Dim MyRange as Object ' Store the selected range in a variable. Set MyRange = Selection ' Select the entire column. Selection.EntireColumn.Select ' Insert Columns in all selected sheets. Selection.Insert ' Reselect the previously selected cells. MyRange.Select End Sub 

примеры программ. Макросы в Excel

Пособие содержит макросы на следующие темы:
Запуск макроса с поиском ячейки.
Запуск макроса при открытии книги.
Запуск макроса при вводе в ячейку «2».
Запуск макроса при нажатии «Ентер».
Добавить в панель свою вкладку «Надстройки» (Формат ячейки).
Работа с файлами (т. е. обмен данными с ТХТ, RTF, XLS и т. д.).
Проверка наличия файла по указанному пути.
Поиск нужного файла.
Автоматизация удаления файлов.
Произвольный текст в строке состояния.
Восстановление строки состояния.
Бегущая строка в строке состояния.

Быстрое изменение заголовка окна.
Изменение заголовка окна (со скрытием названия файла).
Возврат к первоначальному заголовку.
Что открыто в данный момент.
Работа с текстовыми файлами.
Запись и чтение текстового файла.
Обработка нескольких текстовых файлов.
Определение конца строки текстового файла.
Копирование из текстового файла в эксель.

Копирование содержимого в текстовый файл.
Экспорт данных в txt.
Экспорт данных в html.
Импорт данных, для которых нужно более 256 столбцов.
Создание резервных копий ценных файлов.
Подсчет количества открытий файла.
Вывод пути к файлу в активную ячейку.
Копирование содержимого файла RTF в эксель.
Копирование данных из закрытой книги.
Извлечение данных из закрытого файла.
Поиск слова в файлах.
Создание текстового файла и ввод текста в файл.
Создание текстового файла и ввод текста (определение конца файла).
Создание документов Word на основе таблицы Excel.
Команды создания и удаления каталогов.
Получение текущего каталога.
Смена каталога.

Посмотреть все файлы в каталоге.
Посмотреть все файлы в каталоге.
Рабочая область Microsoft Excel.
Рабочая книга.
Количество имен рабочей книги.
Защита рабочей книги.
Запрет печати книги.
Открытие книги (или текстовых файлов).
Открытие книги и добавление в ячейку А1 текста.
Сколько книг открыто.
Закрытие всех книг.
Закрытие рабочей книги только при выполнении условия.
Сохранение рабочей книги с именем, представляющим собой текущую дату.
Сохранена ли рабочая книга.
Создать книгу с одним листом.
Создать книгу.
Удаление ненужных имен.
Быстрое размножение рабочей книги.
Сортировка листов.
Поиск максимального значения на всех листах книги.
Рабочий лист.
Проверка наличия защиты рабочего листа.
Список отсортированных листов.
Создать новый лист.
Создать новый лист.
Удаление листов в зависимости от даты.
Копирование листа в книге.
Копирование листа в новую книгу (создается).
Перемещение листа в книге.
Перемещение нескольких листов в новую книгу.
Заменить существующий файл.
«Перелистывание» книги.
Вставка колонтитула с именем книги, листа и текущей датой.
Существует ли лист.
Существует ли лист.
Вывод количества листов в активной книге.
Вывод количества листов в активной книге в виде гиперссылок.
Вывод имен активных листов по очереди.
Вывод имени и номеров листов текущей книги.
Сделать лист невидимым.
Сколько страниц на всех листах?
Ячейка и диапазон (столбцы и строки).
Копирование строк на другой лист.
Копирование столбцов на другой лист.
Подсчет количества ячеек, содержащих указанные значения.
Подсчет количества ячеек в диапазоне, содержащих указанные значения.
Подсчет количества видимых ячеек в диапазоне.
Определение количества ячеек в диапазоне и суммы их значений.
Подсчет количества ячеек.
Автоматический пересчет данных таблицы при изменении ее значений.
Ввод данных в ячейки.
Ввод данных с использованием формул.
Последовательный ввод данных.
Ввод текстоввых данных в ячейки.
Вывод в ячейки названия книги, листа и количества листов.
Удаление пустых строк.
Удаление пустых строк.
Удаление пустых строк.
Удаление строки по условию.
Удаление скрытых строк.
Удаление используемых скрытых строк или строк с нулевой высотой.
Удаление дубликатов по маске.

Выделение диапазона над текущей ячейкой.
Выделить ячейку и поместить туда число.
Выделение отрицательных значений.
Выделение диапазона и использование абсолютных адресов.

Выделение ячеек через интервал.
Выделение нескольких диапазонов.
Движение по ячейкам.
Поиск ближайшей пустой ячейки столбца.
Поиск максимального значения.
Поиск и замена по шаблону.
Поиск значения с отображением результата в отдельном окне.

Поиск с выделением найденных данных.
Поиск по условию в диапазоне.
Поиск последней непустой ячейки диапазона.
Поиск последней непустой ячейки столбца.
Поиск последней непустой ячейки строки.
Поиск ячейки синего цвета в диапазоне.
Поиск отрицательного значения в диапазоне и выделения синим цветом.
Поиск наличия значения в столбце.
Поиск совпадений в диапазоне.
Поиск ячейки в диапазоне.
Поиск ячейки в диапазоне.
Поиск приближенного значения в диапазоне.
Поиск начала и окончания диапазона, содержащего данные.
Поиск начала данных.
Автоматическая замена значений.
Быстрое заполнение диапазона (массив).
Заполнение через интервал(массив).
Заполнение указанного диапазона(массив).
Заполнение диапазона(массив).
Расчет суммы первых значений диапазона.
Размещение в ячейке электронных часов.
«Будильник».
Оформление верхней и нижней границ диапазона.
Адрес активной ячейки.
Координаты активной ячейки.
Формула активной ячейки.
Получение из ячейки формулы.
Тип данных ячейки.
Вывод адреса конца диапазона.
Получение информации о выделенном диапазоне.
Взять слово с 13 символа в ячейке.
Создание изменяемого списка (таблица).
Проверка на пустое значение.
Пересечение ячеек.
Умножение выделенного диапазона на.
Одновременное умножение всех данных диапазона.
Деление диапазона на.
Возведение каждой ячейки диапазона в квадрат.
Суммирование данных только видимых ячеек.
Сумма ячеек с числовыми значениями.
При суммировании — курсор внутри диапазона.

Начисление процентов в зависимости от суммы.
Начисление процентов в зависимости от суммы.
Сводный пример расчета комиссионного вознаграждения.
Движение по диапазону.
Сдвиг от выделенной ячейки.
Перебор ячеек вниз по колонне.
Создание заливки диапазона.
Подбор параметра ячейки.
Разбиение диапазона.
Объединение данных диапазона.
Объединение данных диапазона.
Узнать максимальную колонку или строку.
Ограничение возможных значений диапазона.
Тестирование скорости чтения и записи диапазонов.
Открыть MsgBox при выборе ячейки.
Скрытие строки.
Скрытие нескольких строк.
Скрытие столбца.
Скрытие нескольких столбцов.
Скрытие строки по имени ячейки.
Скрытие нескольких строк по адресам ячеек.
Скрытие столбца по имени ячейки.
Скрытие нескольких столбцов по адресам ячеек.
Мигание ячейки.
Работа с примечаниями.
Вывод на экран всех примечаний рабочего листа.
Функция извлечения комментария.
Список примечаний защищенных листов.

Перечень примечаний в отдельном списке.
Перечень примечаний в отдельном списке.

Подсчет количества примечаний.
Подсчет примечаний.
Выделение ячеек с примечаниями.
Отображение всех примечаний.
Изменение цвета примечаний.
Добавление примечаний.
Добавление примечаний в диапазон по условию.
Перенос комментария в ячейку и обратно.

Перенос значений из ячейки в комментарий.
Пользовательские вкладки на ленте.
Дополнение панели инструментов.
Добавление кнопки на панель инструментов.
Панель с одной кнопкой.
Панель с двумя кнопками.
Создание панели справа.

Создание пользовательского меню (вариант 1).
Создание пользовательского меню (вариант 2).
Создание пользовательского меню (вариант 3).
Создание пользовательского меню (вариант 4).
Создание пользовательского меню (вариант 5).
Создание пользовательского меню (вариант 6).
Создание списка пунктов главного меню Excel.
Создание списка пунктов контекстных меню.
Отображение панели инструментов при определенном условии.
Скрытие и отображение панелей инструментов.
Создать подсказку к моим кнопкам.
Создание меню на основе данных рабочего листа.
Создание контекстного меню.
Блокировка контекстного меню.
Добавление команды в меню Сервис.
Добавление команды в меню Вид.
Создание панели со списком.
Мультфильм с помощником в главной роли.
Дополнение помощника текстом, заголовком, кнопкой и значком.
Новые параметры помощника.
Использование помощника для выбора цвета заливки.
ДИАЛОГОВЫЕ ОКНА.
Функция INPUTBOX (через ввод значения).
Вызов предварительного просмотра.
Настройка ввода данных в диалоговом окне.

Открытие диалогового окна (Открыть файл).
Открытие диалогового окна (Печать).
Другие диалоговые окна.
Вызов броузера из Экселя.
Диалоговое окно ввода данных.
Диалоговое окно настройки шрифта.
Значения по умолчанию.
Форматирование текста. Таблицы. ГРАНИЦЫ И ЗАЛИВКА.
Вывод списка доступных шрифтов.
Выбор из текста всех чисел.
Прописная буква только в начале текста.
Подсчет количества повторов искомого текста.
Выделение из текста произвольного элемента.
Отображение текста «задом наперед».
Англоязычный текст — заглавными буквами.
Запуск таблицы символов из Excel.
информация о пользователе, компьютере, принтере и т. д.
Получить имя пользователя.
Вывод разрешения монитора.
Получение информации об используемом принтере.
Просмотр информации о дисках компьютера.
ЮЗЕРФОРМЫ.
ДИАГРАММЫ.
Построение диаграммы с помощью макроса.
Сохранение диаграммы в отдельном файле.
Построение и удаление диаграммы нажатием одной кнопки.
Вывод списка диаграмм в отдельном окне.
Применение случайной цветовой палитры.
Эффект прозрачности диаграммы.
Построение диаграммы на основе данных нескольких рабочих листов.
Создание подписей к данным диаграммы.
РАЗНЫЕ ПРОГРАММЫ.
Программа для составления кроссвордов.
Создать обложку DVD.
Игра «Минное поле».
Игра «Угадай животное».
Расчет на основании ячеек определенного цвета.
ДРУГИЕ ФУНКЦИИ И МАКРОСЫ.
Вызов функциональных клавиш.
Расчет среднего арифметического значения.
Перевод чисел в «деньги».
Поиск ближайшего понедельника.
Подсчет количества полных лет.
Расчет средневзвешенного значения.
Преобразование номера месяца в его название.
Использование относительных ссылок.
Преобразование таблицы Excel в HTML-формат.
Генератор случайных чисел.
Случайные числа — на основании диапазона.
Применение функции без ввода ее в ячейку.
Подсчет именованных объектов.
Включение автофильтра с помощью макроса.
Создание бегущей строки.
Создание бегущей картинки.
Вращающиеся автофигуры.
Вызов таблицы цветов.
Создание калькулятора.
Склонение фамилии, имени и отчества.
ДАТА И ВРЕМЯ.
Вывод даты и времени.
Вывод даты и времени.
Получение системной даты.
Извлечение даты и часов.
Функция ДатаПолная.Используемая версия MS Office не указана.

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

. .

В предыдущих статьях вы видели, как Excel может управлять другими приложениями Microsoft, такими как Word и Outlook. Но одновременно с этим другие приложения также могут быть использованы для управления Excel. Например, вы написали макрос для Word или Access, который создает таблицу Excel, заполняет ее данными, а затем сохраняет ее. Excel не обязательно должен при этом […]

. .

Вы можете использовать эту технологию для управления Microsoft Outlook и отправлять электронные сообщения прямо из вашего листа таблицы или копировать записи вашей записной книги. Конечно же, особенности Excel таковы, что но электронной почте будет отправлена таблица, но этот метод позволяет вам отправлять только часть таблицы. Для того чтобы этот код работал, вам необходимо иметь установленный […]

. .

Этот метод может оказаться очень полезным, например, если у вас есть стандартный документ с таблицами, заполненными данными макросами из таблиц Excel. Вы можете запустить макрос, и данные будут перенесены в таблицы в документе Word. Недавно у меня была задача по написанию программы по заполнению отчета по SLA (Service Level Agreement — уровень сервисных соглашений). Отчет […]

. .

Для автоматизации работы приложений часто используются макросы. Любой макрос — это последовательность действий, записанная под определенным именем. Если при работе с Microsoft Excel возникает необходимость несколько раз выполнить одну и ту же последовательность операций (например, сложное форматирование текущей ячейки или добавление новой строки с заполнением некоторых ее ячеек формулами), то можно записать эти действия, а […]

Грамотно организовать процесс работы в эксэле помогут такие объекты, как макросы в Excel.

Рассмотрим более подробно все особенности работы с данными объектами в пакете программ MS Office.

Благодаря использованию макросов, каждая ячейка вашего документа может быть автоматизирована. Это происходит за счет того, что пользователь записывает все действия во время их создания.

Что такое макросы и зачем они нужны

С макросами можно работать в любой из программ пакета MS Office. Прежде всего они нужны для того, чтобы грамотно организовать работу пользователя в программе.

Они необходимы, чтобы не выполнять однотипные задачи и действия по несколько десятков раз.

Их создание и использование поможет существенно сэкономить время и максимально автоматизировать роботу в программе.

Важно! Благодаря созданному макросу можно просто мгновенно выполнять работу, в то время, как выполнение вручную занимало бы много времени.

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

С понятием макроса можно также столкнуться в программе Ворд, но в Экселе он имеет несколько преимуществ:

  • Во-первых, он объединяет все инструкции в один полный сценарий выполнения, что позволяет оптимизировать нагрузку на программу и начать работать быстрее;
  • Вызвать его можно с помощью клавиши на панели инструментов или с помощью специальной комбинации клавиш . Это позволит пользователю не отрываться от клавиатуры в процессе работы;

Отмечаем еще две статьи, которые могут вам пригодиться:

Создание собственных макросов в Excel 2010, 2007, 2013

Рассмотрим более подробно примеры создания в Excel 2007, 2013:

  • Откройте документ, с которым работаете и для которого хотите создать макрос. К слову, каждая ячейка, над которой производится действие должна быть проработана;
  • Отобразите вкладку разработчика в ленте. Для этого откройте пункт меню «Файл» и откройте параметры, как показано на рисунке;

  • Затем выберите настройку ленты и добавьте окно разработчика в список основных окон, как это показано на рисунке ниже;

  • Теперь можно перейти непосредственно к созданию самого макроса пользователя.
    После его создания, каждая ячейка будет автоматизирована – это означает, что любая ячейка пользовательского документа будет выполнять однотипное действие, которое укажет пользователь;
  • Найдите во вкладке разработчика специальную клавишу для создания. Ее расположение указано на рисунке ниже;

  • Нажмите на клавишу. Появится окно создания, в котором необходимо указать имя, сочетание клавиш, с помощью которых он будет включаться. Также можно добавить короткое описание функционирования макроса.
    Это необходимо сделать, если у вас их слишком много, чтобы не запутаться;

  • Далее нажмите ОК. Окно закроется и начнется процесс записи. Для остановки записи, нажмите соответствующую клавишу на панели управления;

  • Теперь начните выполнять те действия, которые будут записаны в макрос. Каждая ячейка при этом может заполняться определенными данными.
    Можно также работать только с одной ячейкой, после записи и включения макроса эта же ячейка будет записываться согласно указанному алгоритму;
  • Не забудьте нажать кнопку остановки записи данных. После выполнения всех вышеприведенных действия он будет записан и сохранен в программе.

Как включать и работать с макросами в Excel

Для этого следуйте нижеприведенной инструкции:

  • На вкладке разработчика найдите кнопку под названием «Макросы». Нажмите на нее;

  • Выберите нужный вам макрос из списка и нажмите кнопку «Выполнить»;

  • Также запустить необходимый макрос можно с помощью сочетания клавиш, которое было указано пользователем на начальном этапе его создания;
  • После нажатия кнопки выполнить, все действия, которые были произведены во время записи, будут выполнены повторно.

Макрос удобнее всего использовать, когда определенная ячейка нуждается во многоразовом копировании.

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

Как включить макросы в Excel

По умолчанию, вкладка, отвечающая за управление и навигацию макросов в Excel, скрыта. Чтобы активировать данную опцию перейдите по вкладке Файл в группу Параметры. В появившемся диалоговом окне Параметры Excel, перейдите по вкладке Настройка ленты, в правом поле со списком ставим маркер напротив вкладки Разработчик. Данные действия актуальны для версий Excel 2010 и старше.

На ленте появиться новая вкладка Разработчик с элементами управления автоматизации Excel.

Написание макросов в Excel

Во вкладке Разработчик в группе Код, нажмите кнопку Запись макроса. Появиться диалоговое окно Запись макроса, которая запрашивает некоторую информацию о будущем записываемом коде. Если вы впервые создаете макрос, можете просто нажать кнопку ОК. С данного момента Excel будет фиксировать каждое действие пользователя в модуле VBA, будь то ввод данных, форматирование или создание диаграмм. Чтобы остановить запись макроса, нажмите кнопку Остановить запись, которая находится в той же группе Код.

Вы также можете воспользоваться альтернативным вариантом записи макросов, воспользовавшись кнопкой Запись макроса, которая находится в левом нижнем углу рабочей книги Excel (правее статуса Готово ).

Теперь вы можете посмотреть список всех созданных макросов, нажав на кнопку Макрос, находящуюся в группе Код. В появившемся диалоговом окне вы можете дать более описательные имена своим кодам или задать сочетания клавиш, которые бы запускали тот или иной макрос. Альтернативным вариантом запуска данного окна является нажатие клавиш Alt + F8.

Редактирование макросов

Поздравляю! Вы написали свой первый макрос. Логичным будет проверить теперь, какой же код сгенерировал нам Excel. Сгенерированный код написан на языке VBA (Visual Basic for Applications). Чтобы увидеть его, нужно открыть Редактор VB (VBE), который запускается нажатием клавиш Alt + F11 или кнопкой Visual Basic на вкладке Разработчик.

Чтобы избежать путаницы в редакторе вы можете работать только с одной вкладкой рабочей книги, листа или модуля. Так выглядит редактор в реалии.

Предлагаю на данном этапе подробнее изучить различные окна и меню редактора VBA. В дальнейшем это поможет вам сэкономить кучу времени.

Для просмотра кода, щелкните по ветке Modules в окне проектов и дважды щелкните по появившейся ветке Module 1 . Редактор откроет окно с кодом, как изображено на картинке.

Здесь можно редактировать сгенерированный код, который был записан при работе в Excel. К примеру, вам требуется заполнить определенный столбец значениями от 1 до 10. У вас уже есть первые три шага, которые вводят значения 1, 2 и 3 в первые три ячейки столбца А. Нам необходимо дописать оставшиеся семь шагов.

Если вы посмотрите на приведенный выше код, вы увидите, что макрос определенным образом структурирован. Сначала приложение перемещает курсор на ячейку с помощью команды Range("A1").Select, затем редактирует его содержимое с помощью ActiveCell.FormulaR1C1 = "1". Таким образом, для оставшихся шагов мы можем повторить эти действия, меняя адрес ячейки и значение, которое вы хотите записать в эту ячейку. Например, чтобы задать ячейке A4 значение 4, вы должны написать:

Range("A4" ).Select
ActiveCell.FormulaR1C1 = "4"

И повторить аналогичные шаги для оставшихся значений.

После того, как вы закончите редактирование, сохраните книгу. Запустить макрос вы сможете нажатием кнопки F5, либо, вернувшись в рабочую книгу Excel, перейти по вкладке Разработчик в группу Код -> Макросы и выбрать из списка, интересующий вас макрос.

Уделите несколько минут внимательному изучению кода, который сгенерировал Excel. Если вы новичок, вклад нескольких минут в изучение кода дадут потрясающий результат в знакомстве с объектами VBA в дальнейшем. Обратите внимание, что рассмотренный нами пример всего лишь иллюстрация. Есть более быстрые и эффективные способы достижения аналогичных результатов, о которых мы поговорим далее.

Увеличение скорости выполнения макросов Excel

Пока все хорошо. Давайте разберем пару хитростей, которые помогут ускорить выполнение макроса. Рассмотрим в качестве примера фрагмент кода, приведенный выше. Современные компьютеры отработают рассматриваемый код так быстро, что вы даже не заметите этого. Но что если вам необходимо выполнить операцию 50000 раз. Это займет какое-то время. Если макрос, написанный вами, исчисляется сотнями строк, ускорить выполнение кода можно путем обрезки части процессов, который не используется во время исполнения макроса.

Использование команды Application.ScreenUpdating

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

1
2
3
4
5
6
7
8
9
10

Sub Макрос1()

Range("A1" ).Select

Range("A2" ).Select

Range("A3" ).Select

End Sub

Команда Application.ScreenUpdating говорит Excel, чтобы он прекратил выводить пересчитанные данные на экран, а выдал готовые значения в конце выполнения кода.

Использование команды Application. Calculation

Вторая хитрость заключается в отключении автоматических вычислений. Давайте я поясню. Каждый раз, когда пользователь или процесс обновляет ячейку, Excel пытается пересчитать все зависимые от нее ячейки. Так скажем, если ячейка, которую пытается обновить макрос, влияет на 10000 остальных ячеек, Excel будет пытаться пересчитать их все до того, как закончится выполнение кода. Соответственно, если существует целый ряд влияющих ячеек, пересчет может значительно замедлить выполнение кода. Чтобы этого не происходило, вы можете установить команду Application. Calculation в начале кода, которая переключит пересчет формул в ручной режим, а затем вернуть автоматическое вычисление в конце макроса.

1
2
3
4
5
6
7
8
9
10
11
12

Sub Макрос1()
Application.ScreenUpdating = False

Range("A1" ).Select
ActiveCell.FormulaR1C1 = "1"
Range("A2" ).Select
ActiveCell.FormulaR1C1 = "2"
Range("A3" ).Select
ActiveCell.FormulaR1C1 = "3"

Application.ScreenUpdating = True
End Sub

Будьте внимательны, не забудьте переключить данную опцию снова в автоматический режим в конце макроса. В противном случае, вам необходимо будет это сделать в самом Excel, перейдя по вкладке Формулы в группу Вычисление и выбрать Параметры вычислений –> Автоматический.

Избежание выбора ячеек и диапазонов

В режиме автоматической записи макросов, вы можете заметить, что Excel очень часто использует команду выбора ячеек, например, Range(«A1»).Select. В нашем примере, мы использовали данную команду несколько раз, чтобы выбрать ячейку и изменить ее значение. Вы можете избежать этого просто указав адрес ячейки и задав ей необходимое значение (Макрос записал движение курсора от одной ячейки к другой, следовательно, вставил эти шаги. Однако они не являются необходимыми). Так что, более эффективный код будет выглядеть следующим образом.

1
2
3
4
5
6
7
8
9
10
11

Sub Макрос1()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Range("A1" ).Value = 1
Range("A2" ).Value = 2
Range("A3" ).Value = 3
Range("A4" ).Value = 4
Range("A5" ).Value = 5
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub

В данном случае мы просто сослались на ячейку и задали ей необходимое значение, не выбирая его вообще. Это способ быстрее, чем предыдущий.

Примеры макросов Excel

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

Макрос для выделения на каждом листе в активной книге ячейки А1. При этом также происходит перемещение экрана.

Sub A1SelectionEachSheet() Dim i As Integer Application.ScreenUpdating = False For i = 1 To Sheets.Count Sheets(i).Select ActiveWindow.ScrollColumn = 1 ActiveWindow.ScrollRow = 1 Range("a1").Select Next Sheets(1).Select Application.ScreenUpdating = True End Sub

Макрос для копирования текущего листа заданное количество раз. Полезен для тестирования каких то макросов — внесли правки, проверили на копии данных. Закончились копии — запустили макрос еще раз

Sub SimpleCopy() Dim i As Integer, j As Integer i = Application.InputBox("Введите число копий текущего листа") Application.ScreenUpdating = False For j = 1 To i ActiveSheet.Copy after:=Sheets(Sheets.Count) ActiveSheet.Name = "Копия " & j Next j Application.ScreenUpdating = True End Sub

Создание листов с названиями из указанного диапазона на листе

Sub CreateFromList() Dim cell As Range For Each cell In Selection Sheets.Add after:=Sheets(Sheets.Count) ActiveSheet.Name = cell.Value Next cell End Sub

Маркрос отправки письма с задержкой. Доработанный макрос из книги Джона Уокенбаха Профессиональное программирование на VBA

Sub ОтправкаПисьма() Dim OutApp As Object Dim OutMail As Object Set OutApp = CreateObject("Outlook.Application") OutApp.Session.Logon On Error GoTo cleanup Set OutMail = OutApp.CreateItem(0) On Error Resume Next With OutMail .To = "[email protected]" .Subject = "Отчет по продажам" .Attachments.Add "C:\Test.txt" .Body = "Текст письма" .DeferredDeliveryTime = Replace(Date, ".", "/") & " 11:00:00" .send ".Display для формирования письма и его открытия End With On Error GoTo 0 Set OutMail = Nothing cleanup: Set OutApp = Nothing End Sub

Немного доработанный макрос оглавления от Николая Павлова .
Если в книге уже существует лист «Оглавление» — макрос предлагает его удалить. Если нет — создает лист «Оглавление» и вставляет ссылки с названиями листов

Sub TableOfContent() Dim sheet As Worksheet Dim cell As Range Dim Answer As Integer Application.ScreenUpdating = False With ActiveWorkbook For Each Worksheet In ActiveWorkbook.Worksheets If Worksheet.Name = "Оглавление" Then Answer = MsgBox("В книге есть лист с именем Оглавление. Удалить его?", vbYesNo) If Answer = vbNo Then Exit Sub If Answer = vbYes Then Application.DisplayAlerts = False Worksheet.Delete Application.DisplayAlerts = True End If End If Next End With Sheets(Array(1)).Select Sheets.Add Sheets(1).Name = "Оглавление" With ActiveWorkbook For Each sheet In ActiveWorkbook.Worksheets If sheet.Name "Оглавление" Then Set cell = Worksheets(1).Cells(sheet.Index, 1) .Worksheets(1).Hyperlinks.Add anchor:=cell, Address:="", SubAddress:=""" & sheet.Name & """ & "!A1" cell.Formula = sheet.Name End If Next sheet End With Rows("1:1").Delete Application.ScreenUpdating = True End Sub

Сортировка листов от мастеров VBA . Макрос сортирует в том числе и скрытые листы. Не сработает, если у книги защищена структура

Sub СОРТИРОВАТЬ_ВСЕ_ЛИСТЫ() Application.ScreenUpdating = False: Application.EnableEvents = False Dim iSht As Worksheet, oDict As Object, i%, j% Set oDict = CreateObject("Scripting.Dictionary") " запомнить состояние видимости каждого из листов и сделать все видимыми For Each iSht In ActiveWorkbook.Sheets oDict.Item(iSht.Name) = iSht.Visible: iSht.Visible = True Next With ActiveWorkbook " сортировка видимых листов For i = 1 To .Sheets.Count - 1 For j = i + 1 To .Sheets.Count If UCase(.Sheets(i).Name) > UCase(.Sheets(j).Name) Then .Sheets(j).Move Before:=.Sheets(i) Next j Next i End With " восстановить исходное состояние видимости каждого из листов For Each iSht In ActiveWorkbook.Sheets iSht.Visible = oDict.Item(iSht.Name) Next Application.EnableEvents = True: Application.ScreenUpdating = True End Sub

Импорт столбцов «Поле1» и «Поле2» из листа «Лист1» файла Excel «C:\Manager.xls» через ADODB подключение и вставка содержимого начиная с ячейки A1 текущего листа

Создание макросов и пользовательских функций на VBA

Содержание статьи

Практически все офисные работники встречаются с задачами, которые связаны с обработкой больших массивов данных или рутинными вещами, когда руками приходится копировать и вставлять большой поток информации. В такие минуты кажется, что тратишь часы впустую, и «машина» наверняка справилась бы с рутиной за секунду. Делаем решительный шаг в сторону автоматизации рутины.

Кстати, мы ранее писали о том, сколько времени можно сэкономить, приложив усилия и записав макрос. 

Как создать макрос в VBA/Excel? 

Самый простой и быстрый способ — через запись макроса. Заходим в «Разработчик» и открываем окно для формирования запросов в VBA. 


Не нашли «Разработчик»?

Файл → Параметры → Настроить ленту

На панели «Основные вкладки» отметьте галочкой «Разработчик» и нажмите «ОК».


Приступим к записи макроса. Для удобства можно дать макросу название.

Вводим команду. В нашем случае в ячейке С6 введем формулу

=C2+C3+C4+C5

Останавливаем запись макроса и проверяем его работу.

Меняем номера в ячейках C2 – C5. Переходим в «Макросы» и нажимаем «Выполнить».

Результат посчитан верно.

Что записал макрос? Как это выглядит в коде?

Переходим в «Разрабочик» → «Макросы» → выбираем наш макрос → нажимаем «Изменить»

Видим код.

Перейти в это поле можно проще: достаточно воспользоваться комбинацией Alt + F11, которая переводит нас в редактор кода VBA.

В это поле вы можете вставлять совершенно любой макрос. Если вы не специалист в VBA — достаточно будет подсмотреть готовые макросы на просторах интернета и скопировать их в свой документ.

Примеры

1. С помощью макросов можно копировать данные из одного файла в другой.

Sub CopyFiletoAnotherWorkbook()
    ‘Copy the data
        Sheets(«Example 1»).Range(«A1:C5»).Copy
    ‘Create a new workbook
        Workbooks.Add
    ‘Paste the data
        ActiveSheet.Paste
    ‘Turn off application alerts
        Application.DisplayAlerts = False
    ‘Save the newly file. Change the name of the directory.
        ActiveWorkbook.SaveAs Filename:=«C:\EXAMPLE 2.xlsx»
    ‘Turn application alerts back on
        Application.DisplayAlerts = True
End Sub

2. С помощью макросов можно удалять дубли. Ранее мы писали о том, как это сделать без помощи VBA.

Sub DelDups_OneList()
    Dim iListCount As Integer
    Dim iCtr As Integer

    ‘ Turn off screen updating to speed up macro.
    Application.ScreenUpdating = False

    ‘ Get count of records to search through.
    iListCount = Sheets(«Sheet1»).Range(«A1:A100»).Rows.Count
    Sheets(«Sheet1»).Range(«A1»).Select
    ‘ Loop until end of records.
    Do Until ActiveCell = «»
       ‘ Loop through records.
       For iCtr = 1 To iListCount
          ‘ Don’t compare against yourself.
          ‘ To specify a different column, change 1 to the column number.
          If ActiveCell.Row <> Sheets(«Sheet1»).Cells(iCtr, 1).Row Then
             ‘ Do comparison of next record.
             If ActiveCell.Value = Sheets(«Sheet1»).Cells(iCtr, 1).Value Then
                ‘ If match is true then delete row.
                Sheets(«Sheet1»).Cells(iCtr, 1).Delete xlShiftUp
                   ‘ Increment counter to account for deleted row.
                   iCtr = iCtr + 1
             End If
          End If
       Next iCtr
       ‘ Go to next record.
       ActiveCell.Offset(1, 0).Select
    Loop
    Application.ScreenUpdating = True
    MsgBox «Done!»
    End Sub

Макрос находит повторяющиеся элементы в диапазоне А1:A100 и удаляет их. Важная особенность макроса — необходимость отсутствия в массиве пустых ячеек. Если список содержит пустые ячейки, необходимо отсортировать данные в возрастающем порядке, чтобы все пустые ячейки отображались в конце списка. 

3. С помощью макросов можно сравнивать два списка и удалять повторяющуюся информацию.

Следующий пример макроса сравнивает один (ключевой) список с другим и удаляет повторяющиеся элементы во втором списке, которые находятся в главном списке. Первый список находится на листе Sheet1 в диапазоне А1:A10. Второй список располагается на Лист2 в диапазоне А1:A100. Для того, чтобы воспользоваться макросом выберите любой лист и затем запустите макрос. 

Sub DelDups_TwoLists()
    Dim iListCount As Integer
    Dim iCtr As Integer

    ‘ Turn off screen updating to speed up macro.
    Application.ScreenUpdating = False

    ‘ Get count of records to search through (list that will be deleted).
    iListCount = Sheets(«Sheet2»).Range(«A1:A100»).Rows.Count

    ‘ Loop through the «master» list.
    For Each x In Sheets(«Sheet1»).Range(«A1:A10»)
       ‘ Loop through all records in the second list.
       For iCtr = 1 To iListCount
          ‘ Do comparison of next record.
          ‘ To specify a different column, change 1 to the column number.
          If x.Value = Sheets(«Sheet2»).Cells(iCtr, 1).Value Then
             ‘ If match is true then delete row.
             Sheets(«Sheet2»).Cells(iCtr, 1).Delete xlShiftUp
             ‘ Increment counter to account for deleted row.
             iCtr = iCtr + 1
          End If
       Next iCtr
    Next
    Application.ScreenUpdating = True
    MsgBox «Done!»
    End Sub

Возможности VBA достаточно обширны. Мы привели лишь несколько примеров, однако вы можете изучить тему более детально самостоятельно, записавшись на курс «Excel Academy», просматривая обучающие видео и наши статьи. 

Об одном хитром макросе для гигантской таблицы рассказывал Александр Вальцев, CEO SF Education, в видео. 

Автор: Фомкина Ирина, эксперт SF Education

Поиск на листе Excel, примеры использования Find на VBA

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

 

Поиск перебором значений

Довольно простой в реализации способ. Например, найти в колонке "A" ячейку, содержащую "123" можно примерно так:


 Sheets("Данные").Select
 For y = 1 To Cells.SpecialCells(xlLastCell).Row
 If Cells(y, 1) = "123" Then
 Exit For
 End If
 Next y
 MsgBox "Нашел в строке: " + CStr(y)
 

Минусами этого так сказать "классического" способа являются: медленная работа и громоздкость. А плюсом является его гибкость, т.к. таким способом можно реализовать сколь угодно сложные варианты поиска с различными вычислениями и т.п.

Поиск функцией Find

Гораздо быстрее обычного перебора и при этом довольно гибкий. В простейшем случае, чтобы найти в колонке A ячейку, содержащую "123" достаточно такого кода:


 Sheets("Данные").Select
 Set fcell = Columns("A:A").Find("123")
 If Not fcell Is Nothing Then
 MsgBox "Нашел в строке: " + CStr(fcell.Row)
 End If
 

Вкратце опишу что делают строчки данного кода:
1-я строка: Выбираем в книге лист "Данные";
2-я строка: Осуществляем поиск значения "123" в колонке "A", результат поиска будет в fcell;
3-я строка: Если удалось найти значение, то fcell будет содержать Range-объект, в противном случае - будет пустой, т.е. Nothing.

Полностью синтаксис оператора поиска выглядит так:

Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)

What - Строка с текстом, который ищем или любой другой тип данных Excel

After - Ячейка, после которой начать поиск. Обратите внимание, что это должна быть именно единичная ячейка, а не диапазон. Поиск начинается после этой ячейки, а не с нее. Поиск в этой ячейке произойдет только когда весь диапазон будет просмотрен и поиск начнется с начала диапазона и до этой ячейки включительно.

LookIn - Тип искомых данных. Может принимать одно из значений: xlFormulas (формулы), xlValues (значения), или xlNotes (примечания).

LookAt - Одно из значений: xlWhole (полное совпадение) или xlPart (частичное совпадение).

SearchOrder - Одно из значений: xlByRows (просматривать по строкам) или xlByColumns (просматривать по столбцам)

SearchDirection - Одно из значений: xlNext (поиск вперед) или xlPrevious (поиск назад)

MatchCase - Одно из значений: True (поиск чувствительный к регистру) или False (поиск без учета регистра)

MatchByte - Применяется при использовании мультибайтных кодировок: True (найденный мультибайтный символ должен соответствовать только мультибайтному символу) или False (найденный мультибайтный символ может соответствовать однобайтному символу)

SearchFormat - Используется вместе с FindFormat. Сначала задается значение FindFormat (например, для поиска ячеек с курсивным шрифтом так: Application.FindFormat.Font.Italic = True), а потом при использовании метода Find указываем параметр SearchFormat = True. Если при поиске не нужно учитывать формат ячеек, то нужно указать SearchFormat = False.

Чтобы продолжить поиск, можно использовать FindNext (искать "далее") или FindPrevious (искать "назад").

Примеры поиска функцией Find

Пример 1: Найти в диапазоне "A1:A50" все ячейки с текстом "asd" и поменять их все на "qwe"


 With Worksheets(1).Range("A1:A50")
 Set c = .Find("asd", LookIn:=xlValues)
 Do While Not c Is Nothing
 c.Value = "qwe"
 Set c = .FindNext(c)
 Loop
 End With
 

Обратите внимание: Когда поиск достигнет конца диапазона, функция продолжит искать с начала диапазона. Таким образом, если значение найденной ячейки не менять, то приведенный выше пример зациклится в бесконечном цикле. Поэтому, чтобы этого избежать (зацикливания), можно сделать следующим образом:

Пример 2: Правильный поиск значения с использованием FindNext, не приводящий к зацикливанию.


 With Worksheets(1).Range("A1:A50")
 Set c = .Find("asd", lookin:=xlValues)
 If Not c Is Nothing Then
 firstResult = c.Address
 Do
 c.Font.Bold = True
 Set c = .FindNext(c)
 If c Is Nothing Then Exit Do
 Loop While c.Address <> firstResult
 End If
 End With
 

В ниже следующем примере используется другой вариант продолжения поиска - с помощью той же функции Find с параметром After. Когда найдена очередная ячейка, следующий поиск будет осуществляться уже после нее. Однако, как и с FindNext, когда будет достигнут конец диапазона, Find продолжит поиск с его начала, поэтому, чтобы не произошло зацикливания, необходимо проверять совпадение с первым результатом поиска.

Пример 3: Продолжение поиска с использованием Find с параметром After.


 With Worksheets(1).Range("A1:A50")
 Set c = .Find("asd", lookin:=xlValues)
 If Not c Is Nothing Then
 firstResult = c.Address
 Do
 c.Font.Bold = True
 Set c = .Find("asd", After:=c, lookin:=xlValues)
 If c Is Nothing Then Exit Do
 Loop While c.Address <> firstResult
 End If
 End With
 

Следующий пример демонстрирует применение SearchFormat для поиска по формату ячейки. Для указания формата необходимо задать свойство FindFormat.

Пример 4: Найти все ячейки с шрифтом "курсив" и поменять их формат на обычный (не "курсив")


 lLastRow = Cells.SpecialCells(xlLastCell).Row
 lLastCol = Cells.SpecialCells(xlLastCell).Column
 Application.FindFormat.Font.Italic = True
 With Worksheets(1).Range(Cells(1, 1), Cells(lLastRow, lLastCol))
 Set c = .Find("", SearchFormat:=True)
 Do While Not c Is Nothing
 c.Font.Italic = False
 Set c = .Find("", After:=c, SearchFormat:=True)
 Loop
 End With
 

Примечание: В данном примере намеренно не используется FindNext для поиска следующей ячейки, т.к. он не учитывает формат (статья об этом: https://support.microsoft.com/ru-ru/kb/282151)

Коротко опишу алгоритм поиска Примера 4. Первые две строки определяют последнюю строку (lLastRow) на листе и последний столбец (lLastCol). 3-я строка задает формат поиска, в данном случае, будем искать ячейки с шрифтом Italic. 4-я строка определяет область ячеек с которой будет работать программа (с ячейки A1 и до последней строки и последнего столбца). 5-я строка осуществляет поиск с использованием SearchFormat. 6-я строка - цикл пока результат поиска не будет пустым. 7-я строка - меняем шрифт на обычный (не курсив), 8-я строка продолжаем поиск после найденной ячейки.

Хочу обратить внимание на то, что в этом примере я не стал использовать "защиту от зацикливания", как в Примерах 2 и 3, т.к. шрифт меняется и после "прохождения" по всем ячейкам, больше не останется ни одной ячейки с курсивом.

Свойство FindFormat можно задавать разными способами, например, так:


 With Application.FindFormat.Font 
 .Name = "Arial" 
 .FontStyle = "Regular" 
 .Size = 10 
 End With
 

Поиск последней заполненной ячейки с помощью Find

Следующий пример - применение функции Find для поиска последней ячейки с заполненными данными. Использованные в Примере 4 SpecialCells находит последнюю ячейку даже если она не содержит ничего, но отформатирована или в ней раньше были данные, но были удалены.

Пример 5: Найти последнюю колонку и столбец, заполненные данными


 Set c = Worksheets(1).UsedRange.Find("*", SearchDirection:=xlPrevious)
 If Not c Is Nothing Then
 lLastRow = c.Row: lLastCol = c.Column 
 Else
 lLastRow = 1: lLastCol = 1
 End If
 MsgBox "lLastRow=" & lLastRow & " lLastCol=" & lLastCol
 

В этом примере используется UsedRange, который так же как и SpecialCells возвращает все используемые ячейки, в т.ч. и те, что были использованы ранее, а сейчас пустые. Функция Find ищет ячейку с любым значением с конца диапазона.

Поиск по шаблону (маске)

При поиске можно так же использовать шаблоны, чтобы найти текст по маске, следующий пример это демонстрирует.

Пример 6: Выделить красным шрифтом ячейки, в которых текст начинается со слова из 4-х букв, первая и последняя буквы "т", при этом после этого слова может следовать любой текст.


 With Worksheets(1).Cells
 Set c = .Find("т??т*", LookIn:=xlValues, LookAt:=xlWhole)
 If Not c Is Nothing Then
 firstResult = c.Address
 Do
 c.Font.Color = RGB(255, 0, 0)
 Set c = .FindNext(c)
 If c Is Nothing Then Exit Do
 Loop While c.Address <> firstResult
 End If
 End With
 

Для поиска функцией Find по маске (шаблону) можно применять символы:
* - для обозначения любого количества любых символов;
? - для обозначения одного любого символа;
~ - для обозначения символов *, ? и ~. (т.е. чтобы искать в тексте вопросительный знак, нужно написать ~?, чтобы искать именно звездочку (*), нужно написать ~* и наконец, чтобы найти в тексте тильду, необходимо написать ~~)

Поиск в скрытых строках и столбцах

Для поиска в скрытых ячейках нужно учитывать лишь один нюанс: поиск нужно осуществлять в формулах, а не в значениях, т.е. нужно использовать LookIn:=xlFormulas

Поиск даты с помощью Find

Если необходимо найти текущую дату или какую-то другую дату на листе Excel или в диапазоне с помощью Find, необходимо учитывать несколько нюансов:

  • Тип данных Date в VBA представляется в виде #[месяц]/[день]/[год]#, соответственно, если необходимо найти фиксированную дату, например, 01 марта 2018 года, необходимо искать #3/1/2018#, а не "01.03.2018"
  • В зависимости от формата ячеек, дата может выглядеть по-разному, поэтому, чтобы искать дату независимо от формата, поиск нужно делать не в значениях, а в формулах, т.е. использовать LookIn:=xlFormulas

Приведу несколько примеров поиска даты.

Пример 7: Найти текущую дату на листе независимо от формата отображения даты.


 d = Date
 Set c = Cells.Find(d, LookIn:=xlFormulas, LookAt:=xlWhole)
 If Not c Is Nothing Then
 MsgBox "Нашел"
 Else
 MsgBox "Не нашел"
 End If
 

Пример 8: Найти 1 марта 2018 г.


 d = #3/1/2018#
 Set c = Cells.Find(d, LookIn:=xlFormulas, LookAt:=xlWhole)
 If Not c Is Nothing Then
 MsgBox "Нашел"
 Else
 MsgBox "Не нашел"
 End If
 

Искать часть даты - сложнее. Например, чтобы найти все ячейки, где месяц "март", недостаточно искать "03" или "3". Не работает с датами так же и поиск по шаблону. Единственный вариант, который я нашел - это выбрать формат в котором месяц прописью для ячеек с датами и искать слово "март" в xlValues.

Тем не менее, можно найти, например, 1 марта независимо от года.

Пример 9: Найти 1 марта любого года.


 d = #3/1/1900#
 Set c = Cells.Find(Format(d, "m\/d\/"), LookIn:=xlFormulas, LookAt:=xlPart)
 If Not c Is Nothing Then
 MsgBox "Нашел"
 Else
 MsgBox "Не нашел"
 End If
 

 

VBA Примеры | Лучшие 4 примера VBA Macro Excel для начинающих

Excel VBA Примеры

Это очень хорошо, когда я начал работать и изучать макросы VBA, я не знал, с чего начать. Мы уже видели редактор VBA, в котором есть все определения параметров и вкладок окна редактора VBA. Как начинающий, мы всегда не знаем, как начать, пока не найдем. Эта статья - решение для тех, кто сталкивается с трудностями в использовании и изучении примеров VBA и создании макросов. Мы все столкнулись с тем временем, когда некоторые вещи в Excel могли быть автоматизированы с помощью Macro. Но тот, кто не знает, как использовать VBA, не сможет его создать. Это будет полезным руководством для тех, кто не знаком с VBA Macro-кодированием.

Примеры VBA в Excel для начинающих

Ниже приведены примеры VBA в Excel:

Вы можете скачать этот шаблон Excel VBA Примеры здесь - Шаблон VBA Примеры Excel
VBA Пример № 1

Давайте посмотрим на простой пример использования VBA Coding. Для этого выполните следующие шаги:

Шаг 1: Откройте модуль VBA, где мы будем писать наш код на вкладке меню «Вставка», как показано ниже.

Шаг 2: Теперь напишите подпроцедуру макроса VBA под любым именем.

Код:

 Sub VBA_Examples1 () End Sub 

Шаг 3: Определите переменную, используя DIM, где мы будем хранить числа как целые числа.

Код:

 Sub VBA_Examples1 () Dim A As Integer End Sub 

Шаг 4: Теперь присвойте любое число указанной выше переменной, как показано ниже.

Код:

 Sub VBA_Examples1 () Dim A As Integer A = 100 End Sub 

Шаг 5: Теперь мы будем использовать окно сообщения для печати значения, хранящегося в переменной A.

Код:

 Sub VBA_Examples1 () Dim A As Integer A = 100 MsgBox A End Sub 

Шаг 6: Запустите код, нажав клавишу F8 или нажав кнопку воспроизведения, расположенную под строкой меню. Мы увидим окно сообщения со значением 100 в нем.

Код:

 Sub VBA_Examples1 () Dim A As Integer A = 100 MsgBox A End Sub 

Шаг 7: Это также можно сделать с помощью функции Debug Print, значения которой отображаются в Immediate Window. ( Примечание: нажмите Ctrl + G, чтобы открыть окно)

Код:

 Sub VBA_Examples1 () Dim A As Integer A = 100 Debug. Печать A End Sub 

VBA Пример № 2

Теперь в этом примере мы увидим другой пример, где мы будем использовать цикл For-Next для печати имен листов. Для этого выполните следующие шаги:

Шаг 1: Откройте модуль и напишите подпроцедуру, как показано ниже. Мы можем использовать любое имя, чтобы определить это.

Код:

 Sub VBA_Examples2 () End Sub 

Шаг 2: Выберите переменную как целое число. Мы можем выбрать переменную имени, как мы это сделали в примере-1.

Код:

 Sub VBA_Examples2 () Dim A As Integer End Sub 

Шаг 3: Откройте цикл For-Next, как показано ниже.

Код:

 Sub VBA_Examples2 () Dim A As Integer For Next A End Sub 

Шаг 4: Выберите позицию ячейки, из которой мы хотим видеть имена листов. Здесь, поскольку у нас нет ссылки на заголовок, мы можем начать с ячейки 1.

Код:

 Sub VBA_Examples2 () Dim A As Integer For A = 1 To Sheets.Count Next A End Sub 

Шаг 5: Теперь мы назначаем переменную A с ячейкой Value, чтобы увидеть имя листа, как показано ниже.

Код:

 Sub VBA_Examples2 () Dim A As Integer For A = 1 To Sheets. Количество ячеек (A, 1). Значение = Sheets (A). Имя Next A End Sub 

Шаг 6: Теперь запустите код, нажав клавишу F8 или нажав кнопку Play.

Мы увидим, как у нас было 3 листа с именами по умолчанию, так что их имя было напечатано от ячейки А1 до ниже, до количества листов у нас есть.

VBA Пример № 3

В этом примере мы научимся печатать числа. Этот процесс совершенно такой же, как мы видели в примере 2. Для этого выполните следующие шаги:

Шаг 1: Откройте модуль и напишите подпроцедуру.

Код:

 Sub VBA_Examples3 () End Sub 

Шаг 2: Рассмотрим переменную, использующую DIM в качестве целого числа. Поскольку мы используем числа для целочисленного типа данных должны быть использованы.

Код:

 Sub VBA_Examples3 () Dim A As Integer End Sub 

Шаг 3: Снова откройте цикл For-Next, как показано ниже.

Код:

 Sub VBA_Examples3 () Dim A As Integer For Next A End Sub 

Шаг 4: Теперь выберите диапазон ячеек, от которого мы хотим видеть число до последнего в синтаксисе For.

Код:

 Sub VBA_Examples3 () Dim A As Integer для A = 1–10 Следующая A End Sub 

Шаг 5: Теперь исправьте положение ячейки с помощью переменной А. Здесь, вторая вершина положения в ячейке показывает номер столбца. Поскольку мы выбрали 1, мы ожидаем увидеть числа, начиная с ячейки A1.

Код:

 Sub VBA_Examples3 () Dim A As Integer для A = 1–10 ячеек (A, 1). Значение = A Next A End Sub 

Шаг 6: Теперь запустите код, нажав клавишу F8 или нажав кнопку Play. Мы увидим, что числа генерируются от ячейки A1 до A10, начиная с 1 до 10 .

Шаг 7: Что если мы попытаемся добавить эти числа во второй столбец? Измените вершину столбца с 1 на 2. Или добавьте еще одну строку кода, как показано ниже.

Код:

 Sub VBA_Examples3 () Dim A As Integer для A = 1–10 ячеек (A, 1). Значение = A ячеек (A, 2). Значение = A Следующее A End Sub 

Шаг 8: Снова запустите полный код, нажав клавишу F8 или нажав кнопку Play. Мы увидим то же число, начиная с 1 по 10, которое будет напечатано в столбце B, а также из ячейки B1 до B10.

VBA Пример № 4

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

Шаг 1: Откройте модуль, напишите подпроцедуру, как показано ниже.

Код:

 Sub VBA_Example4 () End Sub 

Шаг 2: Определите переменную, используя DIM в качестве диапазона, так как мы выбираем выходной диапазон номеров.

Код:

 Sub VBA_Example4 () Dim A As End End Sub 

Шаг 3: Теперь установите эту переменную как Выбор

Код:

 Sub VBA_Example4 () Dim A As Set Range A = Выбор End Sub 

Шаг 4: Теперь выберите диапазон чисел, используя определенную переменную A, и выберите xlCellTypeBlanks, чтобы выбрать только пустые ячейки.

Код:

 Sub VBA_Example4 () Dim A As Set Range A = Выбор A.Cells.SpecialCells (xlCellTypeBlanks). End Sub 

Шаг 5: Теперь, чтобы изменить цвет интерьера пустых ячеек, используйте Interior.Color и выберите цвет, которым мы хотим выделить пустые ячейки. Используйте тип vbBlue или vbGreen, чтобы определить цвет. Использование VB является обязательным.

Код:

 Sub VBA_Example4 () Dim A As Set Range A = Выбор A.Cells.SpecialCells (xlCellTypeBlanks) .Interior.Color = vbBlue End Sub 

Шаг 6: Теперь выберите диапазон ячеек и затем запустите код, нажав клавишу F8 или нажав кнопку Play. Мы увидим, что ячейки A4 и A7, которые были пустыми, теперь выделены синим цветом, как показано ниже.

Плюсы и минусы Excel VBA Примеры

  • VBA повышает эффективность работы.
  • Таким образом, мы хотим уменьшить количество повторяющихся задач за один раз.
  • Мы можем создать любой тип макроса, который мы хотим.
  • Мы также можем записать макрос, если делать кодирование не так просто.
  • Людям, у которых нет знаний или идей в области кодирования, может быть сложно использовать VBA Macro.

То, что нужно запомнить

  • Начинающим в VBA следует помнить о необходимости сохранения кода в формате Excel с поддержкой макросов. Это позволит нам сохранить код в том же файле.
  • Всегда компилируйте полный код, даже если код состоит из одной строки. Это сократит наше время на отладку, если вы столкнетесь с какой-либо ошибкой после запуска кода.
  • Всегда начинайте процесс обучения VBA или любого другого языка программирования с небольшого и простого кода. Это даст лучшее понимание и уверенность.

Рекомендуемые статьи

Это руководство по VBA Примеры в Excel. Здесь мы обсудим несколько полезных примеров кода макроса VBA в Excel вместе с загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи -

  1. Коллекция VBA (Примеры)
  2. VBA IF Заявления | Шаблоны Excel
  3. Как использовать функцию сортировки Excel VBA?
  4. VBA While Loop (Примеры с шаблоном Excel)
  5. VBA Environ

Автоматизируйте задачи с помощью регистратора макросов

Когда вы записываете макрос, средство записи макросов сохраняет все шаги как код Visual Basic для приложений (VBA). Эти шаги включают, например, ввод текста или чисел; щелкая ячейки или команды на ленте или в меню; форматирование ячеек, строк или столбцов; и даже импорт данных из внешнего источника, такого как Microsoft Access. VBA является частью расширенного языка программирования Visual Basic и доступен в большинстве приложений Office.VBA позволяет автоматизировать процессы в одном приложении Office, а также в нескольких различных приложениях, но вам не нужно знать VBA или иметь навыки программирования, если средство записи макросов соответствует вашим потребностям.

Помните, что когда вы записываете макрос, средство записи макросов записывает почти все, что вы делаете. Поэтому, если вы допустили ошибку при выполнении записанной последовательности действий, например, нажали не ту кнопку, средство записи макросов запишет ошибку.Решением проблемы может быть перерегистрация всей последовательности или изменение кода VBA. Поэтому всякий раз, когда вы хотите записать последовательность действий, стоит сначала хорошо знать весь процесс. Чем эффективнее вы выполняете последовательность во время записи, тем эффективнее будет работать созданный макрос.

Инструменты макроса и VBA находятся на вкладке Developer , которая по умолчанию скрыта, поэтому первым делом нужно включить эту вкладку.Дополнительные сведения см. В разделе Просмотр вкладки «Разработчик».

Записать макрос

Вы можете найти следующую информацию о макросах полезной:

  • Если вы регистрируете макрос для выполнения определенного набора задач в диапазоне в Excel, этот макрос работает только с ячейками в этом диапазоне. Таким образом, когда вы добавляете строку в этот диапазон, запуск макроса будет выполнять процедуру не для новой строки, а только для ячеек в указанном диапазоне.

  • Если вы планируете записывать длинную последовательность задач, лучше создавать макросы меньшего размера для каждого шага вместо одного длинного макроса.

  • Вам не нужно записывать в макрос только задачи Excel. Подпрограмма макроса может охватывать другие приложения Office, а также любое другое приложение с поддержкой VBA.Например, вы можете зарегистрировать макрос, в котором вы сначала обновляете таблицу в Excel, а затем открываете Outlook, чтобы отправить эту таблицу на адрес электронной почты по вашему выбору.

Чтобы зарегистрировать макрос, выполните следующие действия.

  1. На вкладке Developer в группе Code щелкните Record macro .

    —ИЛИ—

    Нажмите Alt-клавиши + T + M + R.

  2. В поле Macro Name введите имя макроса. Имя должно быть как можно более информативным, чтобы облегчить быстрый поиск макроса при создании нескольких макросов.

    Примечание: Первым символом имени макроса должна быть буква.Следующие символы могут быть буквами, цифрами или знаками подчеркивания. В имени макроса нельзя использовать пробелы. Символ подчеркивания лучше всего работает как разделитель слов. Если вы используете имя макроса, которое также является ссылкой на ячейку, вы можете получить сообщение об ошибке о том, что имя макроса недействительно.

  3. Чтобы назначить сочетание клавиш для запуска макроса, в поле «Сочетание клавиш» введите любую букву (как в верхнем, так и в нижнем регистре), которую вы хотите использовать.Лучше всего использовать комбинацию клавиш Ctrl + Shift (верхний регистр), поскольку комбинация клавиш макроса заменит соответствующую комбинацию клавиш Excel по умолчанию, когда рабочая книга, содержащая макрос, открыта. Например, при использовании клавиш Ctrl + Z (Отменить) потеряет возможность отмены в этом экземпляре Excel.

  4. В списке « Сохранить макрос в » выберите место для сохранения макроса.

    Как правило, макросы сохраняются в этой книге, но если вы хотите, чтобы макрос был доступен при каждом использовании макроса, используйте персональную книгу макросов Excel. Если вы выберете Personal Macro Workbook , Excel создаст (если она еще не существует) скрытую Personal Macro Workbook (Personal.xlsb), в которой сохраняется макрос.

  5. В поле Описание вы можете дополнительно ввести краткое описание операции макроса.

    Хотя поле Описание является необязательным, рекомендуется ввести описание. Также рекомендуется ввести содержательное описание, включающее любую информацию, полезную для вас или других, кто будет использовать этот макрос. Если вы создаете много макросов, описание может помочь вам быстро понять, для чего предназначен каждый макрос, избегая догадок.

  6. Щелкните OK , чтобы начать запись.

  7. Выполните действия для регистрации.

  8. На вкладке Developer в группе Code щелкните Stop Logging .

    —ИЛИ—

    Нажмите Alt-клавиши + T + M + R.

Работа с записанными макросами в Excel

На вкладке Developer щелкните Macros , чтобы просмотреть макросы, связанные с книгой. Или нажмите клавиши Alt + F8. Откроется диалоговое окно Macro .

Осторожно: Макросы нельзя отменить.Перед первым запуском записанного макроса убедитесь, что вы сохранили книгу, в которой хотите запустить макрос, или еще лучше поработать с копией книги, чтобы предотвратить нежелательные изменения. Если макрос запускается и не выполняется за вас, вы можете закрыть книгу, не сохраняя ее.

Подробнее о работе с макросами в Excel см. Ниже.

Задача

Описание

Изменить параметры безопасности макросов в Excel

Прочтите подробные сведения о доступных параметрах безопасности макросов и их значении.

Запуск макроса

Вы можете запустить макрос несколькими способами, например, используя сочетание клавиш, графический объект, панель быстрого доступа или кнопку, и даже просто открыв книгу.

Редактирование макроса

Макросы, включенные в книгу, можно редактировать с помощью редактора Visual Basic.

Копирование модуля макроса в другую книгу

Если ваша книга содержит макрос VBA, вы можете скопировать модуль с этим макросом в другую открытую книгу с помощью редактора Microsoft Visual Basic, а затем использовать макрос в другом месте.

Назначьте макрос объекту, фигуре или графике

  1. На рабочем листе щелкните правой кнопкой мыши объект, рисунок, фигуру или элемент, которому вы хотите назначить существующий макрос, а затем щелкните Назначить макрос.

  2. В поле Assign Macro щелкните макрос, который вы хотите назначить.

  3. 90 124 90 150

Назначьте макрос кнопке

Вы можете назначить макрос графическому значку, который вы добавляете на панель быстрого доступа или на ленту.

Назначьте макрос элементу управления на листе

Вы можете назначать макросы формам и элементам управления ActiveX на листе.

Включение или отключение макросов в файлах Office

Узнайте, как включить или отключить макросы в файлах Office.

Запуск редактора Visual Basic

Нажмите Alt + F11

Получите помощь с помощью редактора Visual Basic

Узнайте, как найти справку по элементам Visual Basic.

Работа с зарегистрированным кодом в редакторе Visual Basic

Editor

Вы можете работать с зарегистрированным кодом в редакторе Visual Basic, добавляя собственные переменные, управляющие структуры и другой код, который не может быть зарегистрирован с помощью средства записи макросов. Поскольку Macro Recorder записывает почти все, что вы делаете во время записи, вы также можете удалить макрос из ненужного записанного кода.Чтение зарегистрированного кода также является отличным способом изучить или улучшить свои навыки программирования на VBA.

Дополнительные сведения об изменении зарегистрированного кода и примеры см. В разделе Введение в VBA в Excel.

Записать макрос

Вы можете найти следующую информацию о макросах полезной:

  • Если вы регистрируете макрос для выполнения определенного набора задач в диапазоне в Excel, этот макрос работает только с ячейками в этом диапазоне.Таким образом, если вы добавите дополнительную строку в диапазон, макрос не запустит процесс для новой строки, а только для ячеек в исходном диапазоне.

  • Если вы планируете записывать длинную последовательность задач, лучше создавать макросы меньшего размера для каждого шага вместо одного длинного макроса.

  • Вам не нужно записывать в макрос только задачи Excel.Подпрограмма макроса может охватывать другие приложения Office, а также любое другое приложение с поддержкой VBA. Например, вы можете зарегистрировать макрос, в котором вы сначала обновляете таблицу в Excel, а затем открываете Outlook, чтобы отправить эту таблицу на адрес электронной почты по вашему выбору.

Макросы и инструменты VBA находятся на вкладке Developer , которая по умолчанию скрыта, поэтому первым делом нужно включить эту вкладку.

  1. Перейдите в Excel > Настройки ... > Лента и инструменты .

  2. В категории «Настройка ленты » в списке Основные вкладки установите флажок «Разработчик» и нажмите « Сохранить ».

Чтобы записать макрос, выполните следующие действия.

  1. На вкладке Developer щелкните Макрос записи .

  2. В поле Macro Name введите имя макроса. Имя должно быть как можно более информативным, чтобы его можно было быстро найти, если вы создадите более одного макроса.

    Примечание: Первым символом имени макроса должна быть буква.Следующие символы могут быть буквами, цифрами или знаками подчеркивания. В имени макроса нельзя использовать пробелы. Символ подчеркивания лучше всего работает как разделитель слов. Если вы используете имя макроса, которое также является ссылкой на ячейку, вы можете получить сообщение об ошибке о том, что имя макроса недействительно.

  3. В списке « Сохранить макрос в » выберите место для сохранения макроса.

    Как правило, макросы сохраняются в этой книге, но если вы хотите, чтобы макрос был доступен при каждом использовании макроса, используйте персональную книгу макросов Excel. Когда вы выбираете Workbook Personal Macros , Excel скрывает личную книгу макросов (PERSONAL.XLSB), если она еще не существует, и сохраняет макрос в этой книге. Книги в этой папке открываются автоматически с каждым макросом Excel, и любой код, сохраненный в личной книге макросов, будет указан в диалоговом окне «Макрос», описанном в следующем разделе.

  4. Чтобы назначить сочетание клавиш для запуска макроса, в поле «Сочетание клавиш» введите любую букву (как в верхнем, так и в нижнем регистре), которую вы хотите использовать. Лучше всего использовать комбинации клавиш, которые не соответствуют существующим сочетаниям клавиш, поскольку сочетание клавиш макроса заменяет соответствующее сочетание клавиш Excel по умолчанию, когда открыта книга, содержащая макрос.

  5. В поле Описание вы можете дополнительно ввести краткое описание операции макроса.

    Хотя поле Описание является необязательным, рекомендуется ввести описание. Рекомендуется ввести содержательное описание с информацией, которая может быть полезна вам или другим пользователям, которые будут запускать макрос. Если вы создаете много макросов, описание может помочь вам быстро понять, для чего предназначен каждый макрос, избегая догадок.

  6. Щелкните OK , чтобы начать запись.

  7. Выполните действия для регистрации.

  8. На вкладке Developer щелкните Stop Logging .

Работа с записанными макросами в Excel

На вкладке Developer щелкните Macros , чтобы просмотреть макросы, связанные с книгой.Откроется диалоговое окно Macro .

Примечание. Макросы нельзя отменить. Перед первым запуском записанного макроса убедитесь, что вы сохранили книгу, в которой хотите запустить макрос, или еще лучше поработать с копией книги, чтобы предотвратить нежелательные изменения. Если макрос запускается и не выполняется за вас, вы можете закрыть книгу, не сохраняя ее.

Подробнее о работе с макросами в Excel см. Ниже.

Задача

Описание

Включение и отключение макросов

Узнайте, как включать и отключать макросы в Excel для Mac.

Копирование модуля макроса в другую книгу

Если ваша книга содержит макрос VBA, вы можете скопировать модуль с этим макросом в другую открытую книгу с помощью редактора Microsoft Visual Basic, а затем использовать макрос в другом месте.

Назначьте макрос объекту, фигуре или графике

  1. На рабочем листе щелкните правой кнопкой мыши объект, рисунок, фигуру или элемент, которому вы хотите назначить существующий макрос, а затем щелкните Назначить макрос.

  2. В поле Assign Macro щелкните макрос, который вы хотите назначить.

  3. 90 124 90 150

Назначьте макрос кнопке

Вы можете назначить макрос графическому значку, который вы добавляете на панель быстрого доступа или на ленту.

Назначьте макрос элементу управления на листе

Вы можете назначать макросы формам и элементам управления ActiveX на листе.

Запуск редактора Visual Basic

На вкладке Developer щелкните Visual Basic или Щелкните меню "Инструменты "> Макрос > Visual Basic... .

Получите помощь с помощью редактора Visual Basic

Узнайте, как найти справку по элементам Visual Basic.

.

Краткое руководство: создание макроса

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

Предположим, пользователь каждый месяц создает отчет для менеджера по найму.бухгалтерский учет. Имена клиентов, у которых есть задолженность, должны быть выделены красным и жирным шрифтом. Вы можете создать, а затем запустить макрос, который быстро применяет эти изменения форматирования к выбранным ячейкам.

Как?

Перед записью макроса

Инструменты макроса и VBA находятся на вкладке Developer , которая по умолчанию скрыта, поэтому первым делом нужно включить эту вкладку.Дополнительные сведения см. В разделе Просмотр вкладки «Разработчик».

Запись макроса

  1. В группе Код на вкладке Разработчик щелкните Запись макроса .

  2. При желании введите имя макроса в Имя макроса , введите сочетание клавиш в Клавиша быстрого доступа и описание в Описание и нажмите OK , чтобы начать запись.

  3. Выполните действия, которые нужно автоматизировать, например введите стандартный текст или заполните столбец данных.

  4. На вкладке Developer щелкните Stop Logging .

Присмотритесь к макросу

Редактируя макрос, вы можете познакомиться с языком программирования Visual Basic.

Чтобы отредактировать макрос, в группе Код на вкладке Developer щелкните Макросы , выберите имя макроса, а затем щелкните Изменить . Это запустит редактор Visual Basic.

Посмотрите, как в коде выглядят зарегистрированные действия. Часть кода, вероятно, будет понятной, а часть - немного загадочной.

Поэкспериментируйте с кодом, закройте редактор Visual Basic и перезапустите макрос.Проверьте, что изменилось!

Следующие шаги

Как?

Перед записью макроса

Убедитесь, что вкладка Developer отображается на ленте.Вкладка Developer не отображается по умолчанию, поэтому выполните следующие действия:

  1. Перейдите в Excel > Настройки ... > Лента и инструменты .

  2. В категории настройки Лента в списке Основные вкладки установите флажок Разработчик и нажмите Сохранить .

Запись макроса

  1. На вкладке Developer щелкните Макрос записи .

  2. При желании введите имя макроса в Имя макроса , введите сочетание клавиш в Клавиша быстрого доступа и описание в Описание и нажмите OK , чтобы начать запись.

  3. Выполните действия, которые нужно автоматизировать, например введите стандартный текст или заполните столбец данных.

  4. На вкладке Developer в группе Code щелкните Stop Logging .

Присмотритесь к макросу

Редактируя макрос, вы можете познакомиться с языком программирования Visual Basic.

Чтобы отредактировать макрос, на вкладке Developer щелкните Macros , выберите имя макроса и затем щелкните Edit . Это запустит редактор Visual Basic.

Посмотрите, как в коде выглядят зарегистрированные действия. Часть кода, вероятно, будет понятной, а часть - немного загадочной.

Поэкспериментируйте с кодом, закройте редактор Visual Basic и перезапустите макрос.Проверьте, что изменилось!

Нужна дополнительная помощь?

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

.

Что такое макрос Excel и для чего он нужен? - Курсы, обучение

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

С помощью макросов мы можем снизить производительность серии утомительных и повторяющихся действий до одного нажатия кнопки или сочетания клавиш. Если на работе мы часто выполняем ряд одинаковых операций с некоторыми данными, мы почти наверняка сможем автоматизировать такие операции с помощью макроса. Конечно, было бы хорошо, если бы макрос мог выполняться не только с нашими данными здесь и сейчас, но и в будущем, если структура данных немного изменится или данных просто больше / меньше.

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

Запись макроса vs. почерк код

Мы только что упомянули, что макросы написаны на языке программирования VBA, и это правда, но вам не нужно знать язык, чтобы использовать или создавать их.Microsoft предлагает нам средство записи макросов, которое может передавать ряд наших «щелкающих» действий в программе в код, написанный на на VBA (Visual Basic для приложений) . Однако для использования макросов стоит включить вкладку Developer на ленте. Продемонстрировать это очень просто: просто щелкните правой кнопкой мыши любую из вкладок, выберите в списке кнопку Customize Ribbon и в открывшемся окне выберите вкладку с именем Developer в списке.Отныне он будет постоянно отображаться в Excel.

Благодаря вкладке «Разработчик» у нас есть быстрый доступ к инструментам, полезным при работе с макросами. Конечно, есть кнопка Запись макроса , которая откроет окно регистратора. Мы введем в него имя макроса, например Cell_formatting , горячую клавишу, если захотим, расположение макроса и описание (необязательно). После нажатия кнопки «ОК» начнется запись - с этого момента каждое движение, сделанное в Excel, будет записываться и переводиться в VBA.

Например, мы создадим короткий макрос форматирования ячеек, например:

  • выравнивание текста по центру,
  • черный цвет фона,
  • белый цвет шрифта,
  • жирный шрифт,
  • размер шрифта 20.

Ниже вы можете увидеть, как определенные команды, подаваемые с помощью мыши, переводятся в VBA.

Использование рекордера имеет то преимущество, что вам не нужно знать VBA для создания макроса, но оно также имеет ограничения.Во-первых, не каждое действие в Excel можно записать, во-вторых, при записи даже очень простых действий генерируется большой объем кода, что сильно влияет на читаемость и скорость работы программы.

Написав команды на VBA вручную, мы получим гораздо более читаемый код, занимающий меньше места, выполняющийся быстрее, и мы не ограничиваемся только тем, что можно «щелкнуть» в программе. При написании макросов от руки единственным ограничением является наша голова и знание языка VBA.

Запуск макроса

Когда мы пишем или записываем макрос, мы хотим использовать его позже. Стандартный вариант - выбрать макрос из списка доступных макросов. Чтобы отобразить окно с макросами, просто перейдите на вкладку «Разработчик», нажмите кнопку Macros и выберите любой из них. Что мы можем делать с макросами, так это запускать их (т. Е. Выполнять записанные операции), редактировать (затем мы перейдем в редактор кода), удалять или устанавливать горячую клавишу (кнопка «Параметры»), если мы не делали этого раньше.Ниже приведен пример выполнения только что записанного макроса.

Как вы можете видеть в приведенном выше примере, макрос автоматизирует работу, то есть выполняет несколько действий, шаг за шагом, намного быстрее, чем мы делали бы это вручную.

Другими способами запуска макросов являются, например, подключение к сочетанию клавиш, подключение к выделенной кнопке, которую можно нарисовать в программе, или запуск макроса, например, после нажатия на изображение.

Оптимизация кода

Несколько шагов, предпринятых макросом, произошли относительно быстро.Но возможно ли это быстрее? Да, конечно! Наш пример очень прост, он ускорил выполнение нескольких тривиальных шагов, но при этом было зарегистрировано много строк кода. Макрос работает таким образом, что каждая строка кода выполняется в порядке сверху вниз. Каждая строка имеет значение и влияет на производительность. Мы быстро видим, что запись более сложных действий многократно увеличит объем кода. Чтобы этого не произошло, код следует оптимизировать, то есть отбрасывать строки, которые нам сейчас не нужны.Ниже приведен пример того же макроса, но оптимизированный только до необходимого минимума - были выброшены строки кода, которые были записаны, но не повлияли на работу нашего макроса.

Преимущества и недостатки макросов

Все ли преимущества макросов? Как и все в мире, макросы имеют свои преимущества (ускорение работы, автоматизация, выполнение вещей, которые невозможно сделать из Excel), но также и недостатки. Последние, однако, включают риски, связанные с безопасностью.

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

Microsoft

, конечно, знает об этих рисках, поэтому рекомендует нам не включать содержимое в файлы, загруженные из Интернета, у нас также есть специальные расширения файлов, которые говорят нам, с чем мы можем иметь дело. Если мы видим файл с расширением .xls или .xlsm , у нас должно возникнуть подозрение, что внутри может (но не обязательно) находиться макрос . Файл .xls - это более старый формат, файл .xlsm - более новый, оба из которых позволяют хранить в них макросы.Если мы столкнемся с форматом .xlsx , мы можем быть уверены, что макрос не содержит макрос .

Стоит ли изучать VBA и макросы?

Конечно, стоит научиться, но надо делать это с умом. Хорошая основа для входа в мир макросов и VBA - сначала понять принципы работы программы и функциональность самого Excel. Раньше макросы чаще всего использовались для создания инструментов для работы с данными, потому что Excel не предлагал таких инструментов.На данный момент программа содержит множество инструментов, то и дело появляются новые функции, также у нас есть надстройки, такие как Power Pivot или Power Query, которые кардинально меняют работу с большими наборами данных. Лучшее решение - сначала познакомиться с этими инструментами и тем, что предлагает Excel, и только потом интересоваться макросами, потому что может оказаться, что то, что мы хотим достичь, уже изобретено и реализовано в Excel как инструмент - и вот оно Следует отметить, что готовый инструмент в Excel всегда будет работать быстрее, чем даже лучше всего написанный и оптимизированный макрос.

Просмотр макросов и веб-семинар по VBA в Excel

Обучение:

.

Учебник компьютерных наук ПОНИМАНИЕ МАКРОСОВ И ФУНКЦИЙ EXCELA VBA - Цены и обзоры

Программирование и макросы в Excel? Ничего страшно!

Изучите Visual Basic для приложений (VBA)
Научитесь создавать макросы и свои собственные функции
Изучите Excel

На рынке есть много книг, описывающих использование и использование электронных таблиц MS Excel, но ни одна из них не познакомит вас с предметом так эффективно как этот! Избегайте подводных камней и белых пятен документации, воспользуйтесь опытом автора и смело входите в мир удивительных возможностей Excel.

Узнайте о конструкциях языка VBA и научитесь выполнять с его помощью вычисления. Откройте для себя использование элементов управления, получите данные о дате и времени, узнайте, как работать с текстами, и воспользуйтесь преимуществами определяемых пользователем функций. Также посмотрите, что макросы могут сделать для вас!

Структура и конструкции VBA
Объекты, свойства и методы
Условные операторы и связь
Определение и использование массивов и функций
Обработка исключений и событий
Расширенные структуры данных
Операции с датами, временем и текстами
Управление цветом и условное форматирование
Графические элементы управления
Функции макросов Excel

Узнайте, как использовать Excel для автоматизации своей работы!
Содержание:

Введение 15

Глава 1.Структура и основные конструкции VBA 23

Основная информация о языке программирования VBA 23

Редактор VBA 24

Запуск и тестирование кода 26

Макросы и функции 28

Структура модулей в VBA 29

Дополнительные команды 29

Объявления переменных и глобальные константы 30

Определения подпрограмм 31

Макрос, созданный в результате регистрации 32

Персональная книга макросов и папка надстроек 34

Выполнить макрокоманды 34

Ввод кода VBA в редакторе 35 Prost

Использование имена в коде VBA 35a

функция, определенная в VBA 37

Использование комментариев 38

Переменные - типы и объявления 39

Определение типа переменной во время выполнения 41

Объявления констант 43

Выражения 44

Двойное значение знака равенства 44

Список операторов в Visual Basic 44 900 05

Особенности использования операторов отношения для аргументов различных типов 47

Использование оператора сложения для текстовых данных 48

Интерпретация пустого текста и пустого значения в VBA и Excel 49

Особенности целочисленного деления и операций по модулю 51

Использование функций в выражениях 51

Глава 2.Объекты, их свойства и методы 57

Объект Range и его свойства 57

Свойство Value 57

Свойство Formula и связанные свойства 58

Свойство NumberFormat 59

Свойство Text 60

Свойство Count 62

Упрощенный способ запись ссылки на диапазон 62

Методы 62

Иерархия объектов и кодовые имена 64

Обмен информацией между рабочим листом и кодом VBA 65

Активная ячейка и выбранные ячейки 65

Использовать инструкцию привязки С 66

Использовать адреса без квалификатора листа 67

Методы ссылаются на диапазон ячеек по адресу 68

Общая форма определения диапазона 68

Использование имен 69

Использование свойства Cells 69

Создание косвенных ссылок 70

Использование свойств Offset и Resize 71

Ссылки на соседние ячейки 72

Изменить Прочее, представляющее объекты 72

Объединение диапазонов и комплексных диапазонов 73

Ссылки на указанные строки и столбцы 74

Копирование прерывистого диапазона с сохранением его структуры 75

Метод поиска объекта Range - поиск адреса ячейки с конкретным содержание 76

Объект диапазона a его значение 79

Явная ссылка на значение диапазона 79

Косвенные способы ссылки на значение диапазона 80

Специфика сложных диапазонов 81

Использование автофильтра 82

Синтаксис и значение параметров 82

Фильтр, исключающий три или более значений 84

Считывание настроек фильтра 85

Использование расширенного фильтра 86

Управление процессом изменения данных на листе 88

Глава 3.Управление выполнением кода и связь VBA 91

Управление выполнением кода 91

Условные операторы и операторы выбора 91

Управление запуском сборки - условная компиляция 96

Команды цикла 98

Прерывание аварийной функции или процедуры 103

Операторы перехода 103

Связь программы Visual Basic с пользователем 107

Отображение окна сообщений 107

Отображение сообщений в строке состояния 110

Получение информации от пользователя 112

Глава 4.Использование массивов в Visual Basic 117

Объявления массивов 117

Статические массивы 117

Динамические массивы 118

Проверка диапазона индекса массива 119

Массивы в переменных Variant 119

Сопоставление диапазона ячеек в массиве 119

Массив функция 121

Функция разделения 122

Особенности объявления переменных типа Variant и их использования в качестве массивов 123

Тексты в динамических массивах 124

Базовые операции 125

Присвоение значений элементам массива 125

Удаление содержимого массива 127

Использование оператора Not для массива 128

Изменение структуры массивов 129

Расширение одномерного массива на второе измерение 129

Изменение первого измерения двумерного массива 129

Массивы облегчить обмен информацией с электронной таблицей 130

Массивы и диапазоны в качестве альтернативных аргументов fu функция 130

Функции, генерирующие базовые массивы для использования на листе 131

Использование функции индекса листа в VBA 132

Заполнение диапазона содержимым массива 132

Отображение диапазона в переменной объекта 133

Таблица Excel константы в VBA 134

Чтение значений констант Массивы VBA 134

Оценка вложенности 135

Преобразование диапазона в константу массива 135

Преобразование массива VBA в константу массива 138

Сравнение массивов в VBA 139

Глава 5.Пользовательские функции 143

Способы передачи аргументов функции 143

Необязательные параметры функции 145

Использование массива параметров 147

Проблема пустых аргументов 147

Проблема массивов среди аргументов ParamArray 148

Объявление заголовка функции с переменное количество параметров 149

Передача переменного количества параметров между функциями 151

Передача параметров по значению 151

Передача параметров по ссылке 153

Функция, возвращающая результат в виде массива 156

Преобразование значений функций 157

Вызов макроса из кода VBA 158

Функции пользователя, аналогичные стандартным функциям 159

Глава 6.Избранные применения массивов 163

Преобразование двумерного массива в одномерный 163

Поиск данных в двумерных структурах 166

Поиск в диапазоне 166

Поиск в массиве 168

Функции, состоящие из любых данных в массиве 169

Соединение данных в одномерный массив путем копирования элементов 169

Связывание данных в одномерный массив посредством текста 170

Ориентация массива или преобразование в двумерный массив 172

Удаление выбранной строки или столбец из массива 173

Сортировка данных по областям и массивам 175

Удаление данных с листа 177

Сгруппировать рабочие листы в книге 178

Глава 7.Метод оценки и имена листов 181

Метод оценки 181

Использование функции РАСЧЕТ со ссылкой 182

Особенности и ограничения метода оценки 184

Варианты использования метода оценки 186

Квалифицированные вызовы с использованием метода

Nested Evaluate method 187

Evaluate method

Группировать данные как аргументы функции CALCULATE 188

Оценочные формулы с польскими именами функций 189

Использование функции CALCULATE в итерационных вычислениях 190

Метод Evaluate расширяет возможности функции ADR.ПРОМЕЖУТОЧНЫЙ 191

Использование метода Evaluate в VBA 192

Альтернатива функциям COUNTIF и SUMIF 193

Упростите запись выражений с помощью метода Evaluate 195

Функция Eval для оценки выражений в VBA 196

Имена 192

Объекты Имена 192 Определение имен листов в VBA 198

Имена, которые ссылаются на закрытые книги 205

Применение метода Evaluate к именам листов 206

Именование констант и формул на листе 207

Глава 8.Обработка исключений и событий, проверка данных 209

Обработка ошибок времени выполнения в коде VBA 209

Пользовательские процедуры обработки ошибок 209

Коды ошибок листа 215

Функции проверки значений выражения 217

Трассировка выполнения кода VBA - объект отладки 218

Идентификация места, из которого был вызван макрос или функция 219

Идентификация ячейки, из которой была вызвана функция UDF 220

Процедуры обработки событий 221

Концепция события 221

Включение согласия на итераций перед открытием книги 222

Операции с диапазоном, указанным мышью 223

Предыдущее содержимое ячейки 224

Прошлое наследование - свойства OnDoubleClick и OnEntry объекта приложения 231

Объединение с автоматическим обновлением 232

Проверка данных 233

Объект диапазона.Проверка, ее методы и свойства 233

Ограничения раскрывающегося списка источников 236

Список проверки данных с использованием формулы 237

Привязка списка проверки данных к условному форматированию 238

Отображение нового сообщения о выборе для зависимых списков 240

Изменение способа отображения раскрывающийся список 241

Защита раскрывающегося списка от перезаписи 243

Ввод данных подсказки 244

Глава 9.Адаптация выбранных функций и методов VBA для использования в качестве функций листа 247

Функция Val 247

Метод InputBox 249

Передача значений аргументов в именованные формулы 252

Метод ConvertFormula 253

Функция CallByName - вызов методов по тексту их имени 252

9000 Доступ к предопределенным константам в VBA 258

Чтение имени или номера листа 260

Отображение текстов формул на листе 261

Добавление и редактирование комментариев в ячейках листа 262

Метод NoteText (текстовое примечание) 262

Свойство объекта Range 263

Метод AddComment объекта Range 263

Методы ClearNotes и ClearComments объекта Range 264

Объект Comment и его компоненты 264

Как отображаются комментарии и разметка комментариев 266

Коллекция комментариев 267

SpecialCells метод объекта Range 267

Pre Комментирование и редактирование комментариев функциями UDF 269

Значения в объединенных ячейках 270

Указание формата ячейки в VBA 272

Код формата чтения и записи 272

Использование информации, предоставленной функцией Format 273

Другое форматирование функции в VBA 274

Глава 10.Избранные вычислительные задачи 277

Округление чисел 277

Округление чисел со значащими цифрами 277

С учетом правила четной цифры для округления 278

Вычисление полинома 278

Вычисление корней квадратного уравнения 279

Решение нелинейного цель Решение уравнений 2802

Численное интегрирование 282

Помощь в вычислении ряда 285

Произведение первых элементов массива 285

Решение дифференциального уравнения с использованием метода Рунге-Кутта 287

Поддержка построения графиков 288

Графики функций, описываемых формулой 288

Корректировка данных 289

Графики разрывных функций - обнаружение разрывов 291

Скрытие содержимого ячеек в комментариях 293

Генерация псевдослучайных чисел в VBA 294

Избранные проблемы Комбинаторика 295

Создание перестановок 295

Создание перестановок с повторениями 297

Создание комбинаций 300

Планирование спортивных серий 301

Повышенная точность вычислений 303

Преобразование ссылок в выражении в значения 307

.Примеры применения макрокоманд в химии 309

Расчет молярной массы 309

Преобразование концентрации растворов 312

Изменение внешнего вида и содержания объектов на уровне символов 319

Объединение форматированных текстов 321

Форматирование химических формул 323

Химическое форматирование формулы - в противном случае 325

Форматирование текста с помощью SendKeys 328

SendKeys 328

Выбранные сочетания клавиш, которые работают в режиме редактирования 330

Используйте SendKeys для форматирования ячейки с текстом 332

Глава 12.Альтернативные структуры данных: коллекции и словари 335

Коллекции 335

Создание коллекции и удаление ее элементов 335

Чтение элементов коллекции 337

Специфичность коллекции по сравнению с массивами 338

Коллекции как аргументы процедур и функций и результат функций 339

Ограничения и обходные пути коллекции 340

Словари 341

Создание словаря 341

Чтение и изменение записей 343

Ключи могут быть объектами диапазона (ячейками) 345

Различия между коллекцией и словарем 345

Использование словаря на практике 346

Скопируйте словарь 348

Глава 13.Операции с датой и временем с данными 351

Основы работы с датой в VBA 352

Распознавание дат рабочего листа с помощью VBA 353

Интерпретация текста рабочего листа как дат 354

Функция UDF для преобразования дат в текст 355

Обзор функций VBA для операций с датами 356

Функции Date, Time и Now 356

Функции DateValue и TimeValue 356

Функции DateSerial и TimeSerial 356

Функция IsDate 356

Функция DateAdd 357

Функция DatePart 358 Функция 9000Date5000 9000Date 358 Формат 360

Функция MonthName 364

Функция WeekdayName 364

Функция таймера 364

Метод ожидания 365

Метод OnTime 365

Точное время 366

Непрерывное время 366

Непрерывное отображение времени - Другое решение Секундомер 371

Настраиваемый верхний индекс минут (VBA) 374

Свойства Value и Value2 объекта диапазона в разрешении даты 374

Системная дата и время в кодах формата 375

Глава 14.Текстовые операции 377

Текстовые функции VBA 377

Функции LTrim, RTrim и Trim ($) 377

Функции Chr и ChrW ($) 377

Функции Asc и AscW 378

Функции Hex и Oct ($) 378

Функции LCase и UCase ($) 378

Левая и правая функции ($) 378

Len функция 379

Средняя функция ($) 379

Средняя инструкция 379

Функции пробела и строки ($) 380

Функция форматирования ($) 380

Операторы LSet и RSet 383

Функции InStr и InStrRev 383

Функция StrComp 384

Функция StrConv 385

Функция StrReverse 386

Функция замены текстов

386

Функция

VBA 388

Используйте оператор соединения 388

Другой вариант с оператором соединения 389

Используйте функцию соединения 390

Минимальная версия Join 390

Оператор Like - сравнение текстов 392

Положение первой и последней цифры в тексте 393

Разрыв текста в столбце 394

Метод TextToColumns 394

Метод синтаксического анализа 397

Глава 15 .Управление цветом и условное форматирование 399

Как представлены цвета 399

Чтение цвета фона или шрифта без использования VBA 402

Использование цветов для маркировки ячеек на листе 403

Осветление и затемнение цветов 404

Операции с определенными отформатированными ячейками 405

Суммирование ячеек с использованием одного и того же цвета шрифта 405

Маркировка ячеек непосредственно номерами цвета фона 406

Ускорение реакции на изменение цвета с помощью настраиваемого события 409

Имитация раскрывающегося списка 411

Условное форматирование в VBA 412

Доступ к определениям форматов условного форматирования с уровня VBA 412

Расчет правил условного форматирования 418

Определение правил условного форматирования с помощью функции UDF 419

Копирование условного форматирования с преобразованием в постоянное форматирование 425 9000 5

Моделирование цветовой шкалы с помощью VBA 427

Выборочное копирование правил условного форматирования 428

Глава 16.Ограничения и возможности UDF 429

Прямой вызов UDF 429

Изменение параметров графика 431

Косвенный вызов UDF 432

Общие рекомендации по использованию метода Evaluate 432

Определение имен в формате UDF 434

элементы других ячеек 439

Изменение содержимого шрифта и цвета в других ячейках 441

Удаление содержимого ячеек 443

Ввод значения в другую ячейку 444

Создание раскрывающихся списков 445

Запуск UDF с HYPERLINK 446

Специфика работы Функция ГИПЕРССЫЛКА 446

Использование функции UDF в гиперссылке 447

Выполнение кода VBA при активации раскрывающегося списка 449

Взаимодействие функции UDF с обработчиками событий 450

Копирование ячеек с полным форматирование 451

Функция поиска имена, возвращающие форматированный результат 453

Реальная длина текста 455

Форматирование фрагмента текста 458

Функция, соединяющая форматированный текст 460

Глава 17.Интересные идеи с VBA 465

Мониторинг изменений ячеек 465

Одноразовая операция 465

Многократная операция 466

Чтение данных из закрытой книги 466

Классическое решение 467

467

Решение с использованием ADO 467

Построение ссылок

Использование имен листов 472

Избыточный объем книги после удаления некоторых данных 473

Определение разницы диапазонов 475

Четкий выбор активной ячейки или диапазона выбора 476

Преобразование стиля чисел с помощью инструментов Visual Basic 477

Метод диапазона.Replace 477

Range.TextToColumns method 478

Replace function 479

WorksheetFunction.Substitute 480

Val function 481

CDbl function 481

Str and CStr functions 481

Function Format 482

Расчет формулы 484

Абсолютный размер ячейки 485

Проблемы с автоподбором 488

Переключение между альтернативными результатами в ячейке с помощью клавиатуры 489

Защита ячеек от случайного редактирования 491

Масштабирование выбранных ячеек 492

Использование системного буфера обмена из уровень VBA 494

Прокси-сервер DataObject 494

Использование самого DataObject без буфера обмена 497

Запись в буфер обмена в Windows 8 и 10 498

Очистка буфера обмена 500 90 005

Использовать UDF 501

Глава 18.Графические элементы управления (экранные элементы управления, элементы управления) 503

Типы графических элементов управления и их назначение 503

Добавление элементов управления (элементов управления) на лист 504

Элементы управления формы 507

Элементы управления ActiveX 510

Пользовательское использование окна списка 516

Заменители 517

Графические объекты в коде VBA 520

Текстовые поля и элементы управления формой 521

Элементы управления ActiveX 522

Графические объекты в функциях UDF 523

Макросы для элементов управления на листе 524

Элементы управления формой 525

Элементы управления формой 525

элементы управления 525

ActiveX 525

Глава 19.Макросы Excel, версия 4.0 529

Происхождение макросов XLM 529

Основы использования макросов XLM на листе 530

Вставка листов макросов в книгу 530

Доступ к функциям макросов XLM 530

Использование международного рабочего листа макросов 531

листы макросов 532

Вызов функций макросов XLM в коде VBA 533

Безопасность использования макросов XLM 534

Ссылки на диапазоны с несколькими ячейками в функциях XLM 534

Передача параметров при вызове формулы с именем 536 параметр

Один 9000 536

параметры 50005

Примеры использования макросов XLM на листе и именованных формулах 538

Скрытое пространство имен 546

Глава 20.Обзор макросов XLM 547

Синтаксис макросов Excel 4.0 и описание значений параметров 547

ADR.TEXT = REFTEXT Категория: Поиск и адрес 547

ДОКУМЕНТЫ = ДОКУМЕНТЫ Категория: Информационные 548

ФОРМУЛА. Категория: Поиск и Адрес 549

KOM.AKT = ACTIVE.CELL Категория: Информационная 549

NAMES = NAMES Категория: Информационная 550

About.Application = GET.WORKSPACE Категория: Информационная 551

O.ОПРЕДЕЛЕНИЯ = GET.DEF Категория: Информационная 558

O.DOCUMENT = GET.DOCUMENT Категория: Информационная 559

O.FORMULE = GET.DEF Категория: Информационная 566

O.KOMÓRCE = GET.CELL Категория: Информационная 567

O.NAME = GET.NAME Категория: информационная 572

O.NOTATCE = GET.NOTE Категория: информационная 574

O. OBJECT = GET.OBJECT Категория: информационная 574

O.OPCJACH.LISTY = OPTIONS.LISTS.GET Категория: Информация 582

O.SKOROSZYCIE = GET.WORKBOOK Категория: Информация 582

Категория WINDOWS: Информация 585

ФАЙЛЫ = ФАЙЛЫ Категория: Информация 586

ESTIMATE = EVALUATE Категория: Поиск и адрес 586

SELECTION = ВЫБОР 589

Скоровидз 590

.

способов запуска макросов в Excel

Макросы в Excel можно запускать несколькими способами, например с помощью кнопок или горячей клавиши на панели инструментов - Быстрый доступ. Кнопкой макроса также может быть любой графический объект в книге Excel.

  1. На ленте выберите вкладку Разработчик.
  2. В группе Код найдите кнопку Макросы и нажмите ее.
  3. В поле Имя макроса щелкните имя макроса, который нужно запустить.
  4. Нажмите кнопку Выполнить .

Рисунок 1. Список макросов для запуска

Если мы не видим вкладку Developer в Excel (по умолчанию она не включена), то:

  1. На вкладке File выберите Options , , а затем Customize Ribbon .
  2. В списке основных карт выберите Developer и нажмите OK .
Обратите внимание, что независимо от того, как вы запускаете макрос, он не будет выполняться, если вы выбрали в опции безопасности макросов Отключить все макросы без уведомления .

Мы можем, не изменяя глобальных настроек Excel, временно разрешить выполнение всех макросов:

  1. На карточке Разработчик в группе Код нажимаем кнопку Безопасность макросов .
  2. В категории Macro settings под Macro settings выберите Включить все макросы (не рекомендуется, может выполняться опасный код) и нажмите OK .

Рисунок 2. Мы разрешаем временный запуск макросов

Запуск макроса с помощью сочетания клавиш

Мы можем более удобно запускать часто используемые макросы - с помощью сочетания клавиш, которое отличается для каждого макроса. Чтобы назначить макросу сочетание клавиш:

  1. С карты Developer в группе Code выбираем кнопку Macros .
  2. В поле Macro name введите имя макроса, который мы хотим связать с сочетанием клавиш.
  3. Теперь нажмите Options - в новом окне откроется Macro Options .
  4. В поле Shortcut key введите любую букву, которая будет использоваться с клавишей [CTRL] в качестве ярлыка для макроса.

Мы можем вводить как прописные, так и строчные буквы. Например, ввод [M] назначит макросу сочетание клавиш [CTRL] + [SHIFT] + [M].

  1. В поле Описание можно ввести краткое описание макроса.
  2. Щелкните OK , чтобы сохранить изменения, затем Отмена , , чтобы закрыть диалоговое окно Macro .

Рисунок 3. Параметры макроса - добавление сочетания клавиш

Запуск макроса с помощью кнопки на панели инструментов быстрого доступа

Другой способ запуска макросов - добавить кнопку, запускающую конкретный макрос в Быстрый доступ. Доступ к панели инструментов.

Для этого:

  1. Щелкните вкладку File и выберите Options .
  2. Нажмите Панель быстрого доступа и из списка Выберите команды выберите Макросы .
  3. Выберите макрос, для которого мы хотим создать кнопку на панели быстрого доступа, и нажмите Добавить . Мы можем изменить изображение кнопки макроса, выбрав этот макрос в поле, в котором он отображается, и затем щелкнув Изменить . Теперь выделяем изображение в области , символ . Мы также можем изменить имя макроса (то есть то, что отображается после наведения курсора мыши на кнопку) - для этого используется поле Отображаемое имя .
  4. Щелкните OK , , чтобы подтвердить изменения.

На панели быстрого доступа должна появиться новая кнопка макроса.

Запуск макроса путем щелчка по графическому объекту

Графический объект, такой как рисунок, клипарт или фигура, вставленный в книгу, может быть снабжен так называемым активная точка, нажатие на которую запустит выбранный макрос.

Для этого:

  1. Вставляем в лист графический объект.
  2. На карточке Вставляем в группу Иллюстрации ищем Фигуры и выбираем фигуру, которую хотим использовать в качестве активной точки.
  3. Рисуем фигуру на ранее вставленном объекте.
  4. Щелкните правой кнопкой мыши нарисованную фигуру и выберите Макросъемка из контекстного меню.

Рисунок 4. Назначаем макрос активной точке

90 118
  • Дважды щелкните выбранный макрос или введите его имя в поле Macro name .
  • Щелкните ОК .
  • Чтобы форма не была видна (не закрывая графический объект), но выполняла свою функцию, на вкладке Формат в группе Стили формы раскрываем список Заливка формы и выбираем Без заливки .

    .

    Microsoft отключает поддержку макросов в версии 4.0

    в Excel

    Хороший шаг от Microsoft и информация для групп и пользователей корпоративной безопасности - вскоре производитель программного обеспечения начнет отключать макросы Excel 4.0 XLM по умолчанию в подписках Microsoft 365 для защиты клиентов от вредоносных документов.


    Отключить макросы 4.0

    Вместо того чтобы ждать, пока организации сами отключат макросы XLM, Microsoft вчера объявила, что отключит макросы Excel 4 по умолчанию.0, начиная с октября в сборниках «превью» и позже на официальном канале в ноябре.

    «Мы вносим изменения в настройки макросов Центра управления безопасностью Excel, чтобы по умолчанию обеспечить более безопасную работу пользователей. Это новое поведение по умолчанию отключает «макросы» Excel 4.0 . - объясняет Microsoft в рекомендациях в Центре сообщений Microsoft 365.

    Microsoft начнет отключать макросы Excel 4.0 во всех подписках по следующему расписанию:

    • Insiders-Slow : выйдет в конце октября и будет готов в начале ноября.
    • Текущий канал : будет запущен в начале ноября и будет готов в середине ноября.
    • Ежемесячный корпоративный канал (MEC) : начнется и закончится в середине декабря.

    Гигант Redmont не будет вносить никаких изменений в пользователей, которые настроили этот параметр вручную или настроили его с помощью групповой политики. После внесения изменения параметр «Включить макросы XLM при включении макросов VBA» будет отключен по умолчанию, что отключит макросы XLM.


    Макроатаки 4.0

    Здесь мы показали сценарий атаки с использованием макросов 4.0 в документе Excel. Созданные таким образом документы могут быть очень опасными и обходить системы безопасности. Пример макроса в 4.0, который позволяет запускать dll с адреса в Интернете.


    Резюме

    Исторически макросы Excel 4.0 или макросы XLM (не путать с XML) были впервые добавлены в Excel в 1992 году и позволяли пользователям вводить различные команды в ячейки, которые затем выполнялись для выполнения задачи.Макросы VBA были представлены в Excel 5.0, но они стали доступны до сегодняшних версий Excel и по-прежнему используются киберпреступниками для загрузки вредоносных программ или выполнения других нежелательных действий.

    Кампании, в которых используются макросы Excel 4.0 XLM, включают вредоносные программы, такие как TrickBot, Qbot, Dridex, Zloader и многие другие.

    Из-за постоянных злоупотреблений Microsoft в течение многих лет рекомендовала пользователям включать и выключать макросы Excel 4.0 XLM в пользу макросов VBA. Эта рекомендация вызвана тем, что макросы VBA поддерживают AMSI (интерфейс сканирования защиты от вредоносных программ), который может использоваться программным обеспечением безопасности для сканирования макросов на предмет вредоносного поведения.

    Поделитесь этой статьей с другими!
    .90,000 Microsoft Excel 2019: VBA и макросы - Билл Джелен, Трейси Сирстад (электронная книга)

    Минимальные требования к оборудованию:

    Процессор

    : архитектура x86 с тактовой частотой 1 ГГц или эквивалентная в других архитектурах

    Оперативная память: 512 МБ

    Монитор и видеокарта: совместимость с XGA, минимальное разрешение 1024x768 16 бит

    Жесткий диск: любая поддерживаемая операционная система с минимум 100 МБ свободного места

    Мышь или другой манипулятор + клавиатура

    Сетевая карта / модем: обеспечение доступа в Интернет со скоростью 512 кбит / с

    Минимальные требования к программному обеспечению:

    Операционная система: MS Windows 95 и выше, Linux с X.ORG, MacOS 9 или выше, новейшие мобильные системы: Android, iPhone, SymbianOS, Windows Mobile

    Интернет-браузер: Internet Explorer 7 или выше, Opera 9 и выше, FireFox 2 и выше, Chrome 1.0 и выше, Safari 5

    Браузер с поддержкой файлов cookie и включенным JavaScript

    Рекомендуется

    Flash Player 10.0 или выше.

    Информация о форматах файлов:

    • PDF - формат, рекомендуемый для чтения на ноутбуках и десктопах.
    • EPUB - формат файла, позволяющий читать электронные книги на устройствах с меньшими экранами (например, в электронных книгах или смартфонах), что дает возможность настраивать текст в соответствии с размером устройства и предпочтениями пользователя.
    • MOBI - формат записи Mobipocket, который можно загрузить на любое электронное устройство (например, Kindle e-reader) с установленной программой (например, MobiPocket Reader), которая позволяет читать файлы MOBI.
    • Аудиокниги в формате MP3 - формат файлов, предназначенный для прослушивания аудиозаписей.

    Типы защиты файлов:

    • Водяной знак - (водяной знак) - это зашифрованная информация о пользователе, который приобрел продукт. Это позволяет легко идентифицировать пользователя, незаконно распространявшего продукт. Этот тип безопасности определенно более удобен для пользователя, потому что вам не нужна учетная запись Adobe ID и авторизация устройства, чтобы открыть книгу, защищенную водяным знаком.
    • Без защиты - некоторые файлы, предлагаемые в нашем магазине, не защищены. Как правило, эти типы файлов могут быть загружены ограниченное количество раз, как определено поставщиком электронных публикаций. Соответствующее сообщение появляется на сайте в случае слишком большого количества скачиваний файлов.
    .

    Смотрите также

    Только новые статьи

    Введите свой e-mail

    Видео-курс

    Blender для новичков

    Ваше имя:Ваш E-Mail: