• Эффективная работа в MS Office. Как автоматизировать рутинные задачи в Excel с помощью макросов

    Работа с книгами

    Макрос 1. Создание новой рабочей книги с нуля
    Макроc 2. Сохранение книги при изменении определенной ячейки/диапазона
    Макрос 3. Сохранение рабочей книги перед закрытием
    Макрос 4. Защита рабочего листа в книге перед закрытием
    Макрос 5. Снятие защиты с листа при открытии Excel-файла
    Макрос 6. Открыть книгу на нужном листе
    Макрос 7. Открытие конкретной книги, определенной пользователем
    Макрос 8. Определяем, открыта ли книга
    Макрос 9. Определяем, существует ли книга в папке
    Макрос 10. Обновляем все связи в открытых книгах
    Макрос 11. Закрываем сразу все книги
    Макрос 12. Открыть все рабочие книги в папке
    Макрос 13. Распечатать все книги в папке
    Макрос 14. Не даем закрыть книгу до тех пор, пока не заполнит ячейку
    Макрос 15. Создаем резервную копию текущей книги с сегодняшней датой

    Работа с листами

    Макрос 16. Добавляем новый рабочий лист и присваиваем имя
    Макрос 17. Удалить все листы, кроме активного
    Макрос 18. Скрыть все, кроме активного рабочего листа
    Макрос 19. Отобразить все листы книги
    Макрос 20. Перемещение рабочих листов
    Макрос 21. Сортировка листов по названию
    Макрос 22. Группа листы по Цвету ярлычка
    Макрос 23. Скопировать лист в новую книгу
    Макрос 24. Создать новую рабочую книгу для каждого листа
    Макрос 25. Печать листов
    Макрос 26. Защитить все листы
    Макрос 27. Снять защиту со всех листов
    Макрос 28. Создание оглавления
    Макрос 29. Изменение масштаба изображения рабочего листа с помощью двойного щелчка
    Макрос 30. Выделить столбец активной строки

    Выделение и изменение диапазонов

    Макрос 31. Выбор и форматирование диапазона
    Макрос 32. Создание и выбор именованных диапазонов
    Макрос 33. Перебор с помощью ряда клеток
    Макрос 34. Выбор и форматирование диапазонов
    Макрос 35. Вставка пустых строк в диапазоне
    Макрос 36. Отобразить все скрытые строки и столбцы
    Макрос 37. Удаление пустых строк
    Макрос 38. Удаление пустых столбцов
    Макрос 39. Выбор и форматирование всех формул в рабочем журнале
    Макрос 40. Найдите и выберите первую пустую строку или столбец
    Макрос 41. Применить дополнительный цвет заливки
    Макрос 42. Отсортировать диапазоны по двойному щелчку
    Макрос 43. Ограничение диапазона прокрутки в той или иной области
    Макрос 44. Автоматически задать область печати листа

    Работа с данными

    Макрос 45. Копирование и вставка диапазона
    Макрос 46. Преобразование всех формул в диапазоне в значения
    Макрос 47. Преобразуем текстовых значений в числовые
    Макрос 48. Преобразование тире в минус
    Макрос 49. Удаляем лишние пробелы из всех ячеек в диапазоне
    Макрос 50. Отсекаем слева 5 знаков в каждой ячейки диапазона
    Макрос 51. Добавляем в ячейку недостающие нули
    Макрос 52. Заменить пустые ячейку нулём
    Макрос 53. Добавление текста в начало или конец ячейки
    Макрос 54. Создание макроса преобразования данных
    Макрос 55. Очистка данных (непечатаемые символы)
    Макрос 56. Выделим дубликаты в диапазоне данных
    Макрос 57. Скрываем повторяющиеся строки
    Макрос 58. Выборочно скрываем стрелки автофильтра
    Макрос 59. Копируем отфильтрованные строки в новую книгу
    Макрос 60. Создание нового листа для каждого элемента в Автофильтре
    Макрос 61. Показать отфильтрованные столбцы в строке состояния

    Работа со сводными таблицами

    Макрос 62: Создание обратной совместимости сводной таблицы
    Макрос 63. Обновление всех сводных таблиц книги
    Макрос 64. Создание «описи» всех сводной таблицы книги
    Макрос 65. Создаем все сводные таблицы, используя тот же кэш данных
    Макрос 66. Скрываем все промежуточные итоги в сводной таблице
    Макрос 67. Изменяем названия данных всех полей сводной
    Макрос 68. Принудительное суммирование для всех данных сводной
    Макрос 69. Применить числовой формат для всех элементов данных
    Макрос 70. Сортировка полей сводной в алфавитном порядке
    Макрос 71. Применить пользовательскую сортировку к элементам данных
    Макрос 72: Ставим защиту на сводную таблицу
    Макрос 73. Применять ограничения сводного поля
    Макрос 74. Автоматическое удаление листов с детализацией сводной
    Макрос 75. Печать сводной таблицы для каждого элемента фильтра
    Макрос 76. Создание нового файла для каждого элемента фильтра
    Макрос 77. Готовим диапазон данных для сводной таблицы

    Работа с диаграммами и графиками

    Макрос 78. Изменение размера диаграмм на рабочем листе
    Макрос 79. Привязываем график к определенному диапазону
    Макрос 80. Создание набора бессвязных диаграмм
    Макрос 81. Печать всех диаграмм на рабочем листе
    Макрос 82. Отмечаем лучшее и худшее значение на
    Макрос 83. Одинаковые цвета для значений на разных диаграммах
    Макрос 84. Соответствие цвета диаграмм цвету диапазонов

    Отправка писем из Excel

    Макрос 85. Отправка активной книги почтой (вложение)
    Макрос 86. Отправка диапазон значений в качестве вложения
    Макрос 87. Отправка одного листа в качестве вложения
    Макрос 88. Отправить письмо с ссылкой на наши файлы
    Макрос 89: Рассылка писем с добавлением адресов в наш список контактов
    Макрос 90. Сохранение всех вложений в отдельной папке
    Макрос 91. Сохранение определенных вложений в папку

    Взаимодействие с другими приложениями Office

    Макрос 92. Запуск запроса доступа из Excel



    Макрос 96. Сжатие базы данных Access из Excel
    Макрос 97. Отправка данных Excel в документ в формате Word
    Макрос 98. Делаем Слияние с документом в формате Word
    Макрос 99. Отправка данных Excel в презентации PowerPoint
    Макрос 100. Отправка Excel диаграмм в PowerPoint презентации
    Макрос 101. Преобразование рабочей книги в презентации PowerPoint

    Взаимодействие с другими приложениями Office
    научимся работать с Word, Access и PowerPoint
    Макрос 92. Запуск запроса доступа из Excel
    Макрос 93. Запуск макроса Access из Excel
    Макрос 94. Открытие отчета Access из Excel
    Макрос 95. Открытие формы доступа из Excel

    Следующие простые примеры макросов Excel иллюстрируют некоторые возможности и приёмы, описанные в самоучителе по Excel VBA .

    Макрос Excel: пример 1

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

    "Процедура Sub выполняет поиск ячейки, содержащей заданную строку "в диапазоне ячеек A1:A100 активного листа Sub Find_String(sFindText As String) Dim i As Integer "Целое число типа Integer, используется в цикле For Dim iRowNumber As Integer "Целое число типа Integer для хранения результата iRowNumber = 0 "Просматривает одну за другой ячейки A1:A100 до тех пор, пока не будет найдена строка sFindText For i = 1 To 100 If Cells(i, 1).Value = sFindText Then "Если совпадение с заданной строкой найдено "сохраняем номер текущей строки и выходим из цикла For iRowNumber = i Exit For End If Next i "Сообщаем пользователю во всплывающем окне найдена ли искомая строка "Если заданная строка найдена, указываем в какой ячейке найдено совпадение If iRowNumber = 0 Then MsgBox "Строка " & sFindText & " не найдена" Else MsgBox "Строка " & sFindText & " найдена в ячейке A" & iRowNumber End If End Sub

    Макрос Excel: пример 2

    Следующая процедура Sub – пример использования цикла Do While . Здесь также можно увидеть, как объявляются переменные, работу со ссылками на ячейки Excel и применение условного оператора If .

    "Процедура Sub выводит числа Фибоначчи, не превышающие 1000 Sub Fibonacci() Dim i As Integer "Счётчик для обозначения позиции элемента в последовательности Dim iFib As Integer "Хранит текущее значение последовательности Dim iFib_Next As Integer "Хранит следующее значение последовательности Dim iStep As Integer "Хранит размер следующего приращения "Инициализируем переменные i и iFib_Next i = 1 iFib_Next = 0 "Цикл Do While будет выполняться до тех пор, пока значение "текущего числа Фибоначчи не превысит 1000 Do While iFib_Next < 1000 If i = 1 Then "Особый случай для первого элемента последовательности iStep = 1 iFib = 0 Else "Сохраняем размер следующего приращения перед тем, как перезаписать "текущее значение последовательности iStep = iFib iFib = iFib_Next End If "Выводим текущее число Фибоначчи в столбце A активного рабочего листа "в строке с индексом i Cells(i, 1).Value = iFib "Вычисляем следующее число Фибоначчи и увеличиваем индекс позиции элемента на 1 iFib_Next = iFib + iStep i = i + 1 Loop End Sub

    Макрос Excel: пример 3

    Эта процедура Sub просматривает ячейки столбца A активного листа до тех пор, пока не встретит пустую ячейку. Значения записываются в массив. Этот простой макрос Excel показывает работу с динамическими массивами, а также использование цикла Do Until . В данном примере мы не будет совершать какие-либо действия с массивом, хотя в реальной практике программирования после того, как данные записаны в массив, над ними такие действия, как правило, совершаются.

    "Процедура Sub сохраняет значения ячеек столбца A активного листа в массиве Sub GetCellValues() Dim iRow As Integer "Хранит номер текущей строки Dim dCellValues() As Double "Массив для хранения значений ячеек iRow = 1 ReDim dCellValues(1 To 10) "Цикл Do Until перебирает последовательно ячейки столбца A активного листа "и извлекает их значения в массив до тех пор, пока не встретится пустая ячейка Do Until IsEmpty(Cells(iRow, 1)) "Проверяем, что массив dCellValues имеет достаточный размер "Если нет – увеличиваем размер массива на 10 при помощи ReDim If UBound(dCellValues) < iRow Then ReDim Preserve dCellValues(1 To iRow + 9) End If "Сохраняем значение текущей ячейки в массиве dCellValues dCellValues(iRow) = Cells(iRow, 1).Value iRow = iRow + 1 Loop End Sub

    Макрос Excel: пример 4

    В этом примере процедура Sub считывает значения из столбца A рабочего листа Лист2 и выполняет с ними арифметические операции. Результаты заносятся в ячейки столбца A на активном рабочем листе. В этом макросе продемонстрировано использование объектов Excel. В частности, производится обращение процедурой Sub к объекту Columns , и показано, как доступ к этому объекту осуществляется через объект Worksheet . Показано так же, что при обращении к ячейке или диапазону ячеек на активном листе, имя этого листа при записи ссылки указывать не обязательно.

    "Процедура Sub при помощи цикла считывает значения в столбце A рабочего листа Лист2, "выполняет с каждым значением арифметические операции и записывает результат в "столбец A активного рабочего листа (Лист1) Sub Transfer_ColA() Dim i As Integer Dim Col As Range Dim dVal As Double "Присваиваем переменной Col столбец A рабочего листа Лист 2 Set Col = Sheets("Лист2").Columns("A") i = 1 "При помощи цикла считываем значения ячеек столбца Col до тех пор, "пока не встретится пустая ячейка Do Until IsEmpty(Col.Cells(i)) "Выполняем арифметические операции над значением текущей ячейки dVal = Col.Cells(i).Value * 3 - 1 "Следующая команда записывает полученный результат в столбец A активного рабочего листа "Имя листа в ссылке указывать нет необходимости, так как это активный лист. Cells(i, 1) = dVal i = i + 1 Loop End Sub

    Макрос Excel: пример 5

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

    "Данный код показывает окно с сообщением, если на текущем рабочем листе "выбрана ячейка B1 Private Sub Worksheet_SelectionChange(ByVal Target As Range) "Проверяем выбрана ли ячейка B1 If Target.Count = 1 And Target.Row = 1 And Target.Column = 2 Then "Если ячейка B1 выбрана, выполняем необходимое действие MsgBox "Вы выбрали ячейку B1" End If End Sub

    Макрос Excel: пример 6

    На примере этой процедуры показано использование операторов On Error и Resume для обработки ошибок. В данном коде также показан пример открытия и чтения данных из файла.

    "Процедура Sub присваивает аргументам Val1 и Val2 значения ячеек A1 и B1 "из рабочей книги Data.xlsx, находящейся в папке C:\Documents and Settings Sub Set_Values(Val1 As Double, Val2 As Double) Dim DataWorkbook As Workbook On Error GoTo ErrorHandling "Открываем рабочую книгу с данными Set DataWorkbook = Workbooks.Open("C:\Documents and Settings\Data") "Присваиваем переменным Val1 и Val2 значения из заданной рабочей книги Val1 = Sheets("Лист1").Cells(1, 1) Val2 = Sheets("Лист1").Cells(1, 2) DataWorkbook.Close Exit Sub ErrorHandling: "Если файл не найден, пользователю будет предложено поместить искомый файл "в нужную папку и после этого продолжить выполнение макроса MsgBox "Файл Data.xlsx не найден! " & _ "Пожалуйста добавьте рабочую книгу в папку C:\Documents and Settings и нажмите OK" Resume End Sub

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

    Что представляют собой Excel-макросы?

    Макросы используются не только в таблицах, но и во всем Microsoft Office. Они представляют собой созданный при помощи Visual Basic for Applications код. Если вы частично знакомы с web-программированием, то можно провести аналогию с Javascript. Excel-макросы делают примерно то же самое, что и Javascript с данными формата HTML.

    Небольшая часть того, что может сделать макрос в офисных приложениях:

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

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

    Чем могут быть опасны макросы в Excel?

    Повредить файлы на ПК;
    . похитить конфиденциальные данные.

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

    Еще один способ работы вредоносного макроса - посредничество для внедрения угроз в систему. В этом случае он является своеобразными воротами для внедрения и генерирования троянского ПО. Им уже будет управлять не видоизменённый макрос, а сама операционная система, а следовательно, угроза становится более масштабной. Не всегда получается вылечить такие вирусы, иногда приходится полностью менять Windows OC или жесткий диск ПК (в зависимости от задач, которые ставил хакер при написании кода).

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

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

    Как записать макросы в Excel

    Наиболее простой способ создания макроса - программирование прямо в Excel. Для этого вам понадобится таблица с внесенными данными и немного знаний, чтобы включить запись такого кода в программе.

    Создание начинается с меню «Вид». В нем нужно выбрать позицию «Макросы» и команду «Записать Макрос». Далее нужно задать имя без пробелов, например, «Format» (если код будет отвечать за изменение формата текста или ячеек).

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

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

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

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

    Как увидеть программный код макроса?

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

    Для этого нужно последовательно выполнить команды:

    Развернуть вкладку «Вид»;
    . открыть «Макросы»;
    . выбрать имя необходимого макроса;
    . вызывать окно с его кодом при помощи кнопки «Изменить».

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

    Как начать работу макроса по клику на ячейку

    Допустим, вы хотите, чтобы при выделении ячейки А1 запускалась работа макроса. Чтобы выбранная в Excel ячейка макрос запускала, необходимо в первый модуль добавить программный код:

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Address = "$A$1" Then: Call module1
    End Sub

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

    Где можно научиться работать с макросами

    Есть несколько способов научиться созданию более сложных макросов. Они должны отличаться логикой и четко настроенной последовательностью действий. Создаются такие макросы только путем написания кода VBA вручную. Для создания сложных макросов вам потребуется затратить некоторое время на изучения тонкостей языка программирования Visual Basik.

    Сейчас для изучения всех возможностей Excel создано немало специальных курсов, которые идут по несколько недель, но вам потребуется для их посещения выезжать в учебный центр или присутствовать на вебинарах (что не всегда удобно из-за разницы во времени). Но более действенный и простой способ научиться создавать макросы в Excel - самоучитель с примерами. Вы можете заниматься по нему в любое удобное для вас время, а пошаговые учебники помогут разрабатывать разные варианты: от самых простых кодов до наиболее сложных. Microsoft Excel - это универсальный табличный редактор, при помощи которого можно решить множество сложных задач.

    Примеры

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

    Sub Макрос1()

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

    Рассмотрим два примера:

    1. Ищем и используем команду

    Например, нам необходима команда, которая бы вставляла в выделенные ячейки цифру "1". Запускаем поисковик, набираем поисковую фразу, получаем результаты, начинаем просматривать, находим код примерно в таком виде:

    Sub Вставка1() Dim q As Object On Error Resume Next Set q = Cells For Each q In Selection q = 1 Next q End Sub

    Выделяем данный код (без нумерации строк, начиная со слова Sub ) и нажимаем Ctrl+C . Переходим в свою рабочую книгу MS Excel и нажимаем сочетание клавиш Alt+F11 , у вас откроется окно редактора VBA:

    В левом окне "Project - VBA Project" выбираем (щелкаем мышкой) нашу рабочую книгу, в которую необходимо вставить макрос, например, "VBAProject (Книга2)":

    В пункте меню "Insert" выбираем "Module":

    В левом окне "Project - VBA Project" у вас должна появиться новая папка "Modules" и в ней новый объект "Module1":

    Переходим курсором в правое "Большое" поле для ввода и нажимаем Ctrl+V , скопированный макрос вставиться в модуль:

    Макросы в MS Excel можно вставлять в следующие места:

    • В Модуль, обычно вставляют код макросов, запуск которых будет производится по нажатию кнопки пользователем (как, например, в нашем случае) или код функций (формул);
    • В Рабочий лист, обычно вставляют код макросов, запуск которых должен происходить автоматически в зависимости от действий пользователя или изменения данных в листе (поменялись данный, макрос выполнился);
    • В Рабочую книгу, обычно вставляют код макросов, запуск которых должен происходить автоматически в зависимости от действий, производимых над книгой (файлом). Например, макрос, который запускается при открытии или закрытии книги, или при ее сохранении;
    • Так же макросы могут быть частью пользовательской формы.

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

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

    Для вставки кода в Книгу, выберите "ЭтаКнига":


    Давайте потренируемся. Вставьте код опубликованный ниже в "Лист1".

    Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo a If Target = 2 Then VBA.MsgBox ("Ячейка " & Target.Address & " = 2") End If a: Exit Sub End Sub

    Данный макрос выводит информационное сообщение если вы введете в любую ячейку листа "2".

    Вернитесь в рабочую книгу, перейдите в "Лист1" и введите в ячейку "А1" цифру "2" и нажмите Enter , после чего у вас должно появиться следующее сообщение:

    Если вы видите это сообщение, то вы все сделали правильно. Если нет, то вы вставили код куда-то не туда, повторите попытку.

    При вставке кода, необходимо внимательно следить за тем, куда вы его вставляете. Это можно сделать посмотрев на то, что написано в заголовке окна редактора VBA:

    2. Ищем и используем функцию

    Находим в интернете VBA код функции, которая подсчитывает, например, количество слов в ячейке:

    Public Function КолСловВЯчейке(Ячейка As Range) Dim q As Variant Application.Volatile q = VBA.Split(Application.WorksheetFunction.Trim(Ячейка.Value), " ") КолСловВЯчейке = UBound(q) + 1 End Function

    Копируем код, нажимаем сочетание клавиш Alt+F11 , откроется редактор VBA:


    Добавляем новый модуль в свою книгу и в этот модуль вставляем скопированный код:


    Закрываем редактор VBA и переходим в свою рабочую книгу. Создаем новый лист (необязательно) в ячейку A1 вводим текст "мама мыла раму". Встаем в ячейку, в которой хотим получить результат (количество слов), в меню "Формулы" нажимаем кнопку "Вставить функцию":

    В открывшемся окне "Вставка функции" в поле "Категория" выбираем "Определенные пользователем"

    В списке доступных функций выбираем "КолСловВЯчейке", нажимаем "ОК":

    Вводим необходимые аргументы и нажимаем "ОК":

    Получаем результат:

    Важно:

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

    Если при вставке макроса в модуль у вас вместо некоторого текста стоят красные знаки "???????? "

    Это значит, что у вас проблема с кодировкой, которая наблюдается с копированием Кириллического текста из некоторых браузеров. Чтобы победить эту проблему, попробуйте вставить скопированный код в пустой лист MS Excel, как "Текст в кодировке Unicode". Для этого перейдите в книгу MS Excel, выберите или создайте пустой лист, встаньте в ячейку "A1" и нажмите сочетания клавишCtrl+Alt+V . Должно будет появиться меню "Специальной вставки", выберите пункт "Текст в кодировке Unicode" и нажмите "OK".

    Код должен будет вставиться в рабочий лист без знаков вопроса:

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

    Если вы не видите в редакторе VBA окна "Project - VBA Project", перейдите во вкладку меню "View" и в списке выберите пункт "Project Explorer" или нажмите сочетание клавиш Ctrl+R :

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

    . .

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

    . .

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

    . .

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

    . .

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