Задания на макросы в excel

Разделы:

Информатика


Практическая работа 1. «Годовая температура»

Порядок работы:

  1. Откройте Excel.
  2. Переименуйте «Лист1» в лист «Температура».
  3. Составьте таблицу «Годовая температура»
Месяц Средняя температура
Январь -5
Февраль -6
Март 0
Апрель 2
Май 10
Июнь 15
Июль 18
Август 20
Сентябрь 18
Октябрь 6
Ноябрь 3
Декабрь -9
  1. В ячейку Е3 поместите значение среднегодовой температуры, рассчитав ее по формуле СРЗНАЧ(В3:D3)
  2. Запишите Ваши действия в макрос, назвав его «СрГодТемп».
  3. Привяжите макрос к графическому объекту (например, кнопка):

 

Отформатируйте ее и назначьте ей макрос «СрГодТемп».

  1. Справа от показателя температуры нарисуйте графический объект (кнопку) и назначьте ему макрос, который будет очищать содержимое ячейки Е3.

  1. Проверьте работу кнопок «Средне-годовая t » и «Очистить».
  2. Самостоятельно выполните создание кнопок и макросов для подсчета и очистки:
    • Максимальной годовой температуры;
    • Минимальной годовой температуры;
    • Средняя температура по временам года (зимой, весной, летом, осенью)
    • Создать кнопку «Очистить всё» для очистки всех расчетов.

Ваша работа должна выглядеть следующим образом:

Практическая работа 2. «Протяженность границ РФ» – Приложение 1.

Практическая работа 3. «Тест на визуальный Интеллект» – Приложение 2.

18.03.2012

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

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

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

Table of Contents

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

В Excel нажмите комбинацию клавиш alt + F11. Это приведет вас к редактору VBA в MS Excel. Затем щелкните правой кнопкой мыши папку Microsoft Excel Objects слева и выберите Insert => Module. Это место, где сохраняются макросы. Чтобы использовать макрос, вам нужно сохранить документ Excel как макрос. Из табуляции File => Save as, выберите Save as macro-enabled Workbok (расширение .xlsm) Теперь пришло время написать свой первый макрос!

1. Копирование данных из одного файла в другой.

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

Sub CopyFiletoAnotherWorkbook()
    
        Sheets("Example 1").Range("B4:C15").Copy
    
        Workbooks.Add
    
        ActiveSheet.Paste
    
        Application.DisplayAlerts = False
    
        ActiveWorkbook.SaveAs Filename:="C:TempMyNewBook.xlsx"
    
        Application.DisplayAlerts = True
End Sub

2. Отображение скрытых строк

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

Sub ShowHiddenRows()
    Columns.EntireColumn.Hidden = False
    Rows.EntireRow.Hidden = False
End Sub

3. Удаление пустых строк и столбов

Пустые строки в Excel — может быть проблемой для обработки данных. Вот как избавиться от них:

Sub DeleteEmptyRowsAndColumns()
    
        Dim MyRange As Range
        Dim iCounter As Long
    
        Set MyRange = ActiveSheet.UsedRange
        
        For iCounter = MyRange.Rows.Count To 1 Step -1
    
           If Application.CountA(Rows(iCounter).EntireRow) = 0 Then
               Rows(iCounter).Delete
               
               
           End If
    
        Next iCounter
    
        For iCounter = MyRange.Columns.Count To 1 Step -1
    
               If Application.CountA(Columns(iCounter).EntireColumn) = 0 Then
                Columns(iCounter).Delete
               End If
    
        Next iCounter      
End Sub

4. Нахождение пустых ячеек

Sub FindEmptyCell()
    ActiveCell.Offset(1, 0).Select
       Do While Not IsEmpty(ActiveCell)
          ActiveCell.Offset(1, 0).Select
       Loop
End Sub

#### 5. Заполнение пустых ячеек

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

Sub FindAndReplace()
    
        Dim MyRange As Range
        Dim MyCell As Range
    
        Select Case MsgBox("Can't Undo this action.  " & _
                            "Save Workbook First?", vbYesNoCancel)
            Case Is = vbYes
            ThisWorkbook.Save
            Case Is = vbCancel
            Exit Sub
        End Select
    
        Set MyRange = Selection
    
        For Each MyCell In MyRange
    
            If Len(MyCell.Value) = 0 Then
                MyCell = 0
            End If
    
        Next MyCell
End Sub

#### 6. Сортировка данных

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

NB: Здесь нам нужно поставить этот код в Sheet1 (папка Microsoft Excel Objects), а не в Module1 (папка Modules):

Private Sub Worksheet_BeforeDoubleClick (ByVal Target as Range, Cancel As Boolean)
    
        Dim LastRow As Long
    
        LastRow = Cells (Rows.Count, 1) .End (xlUp) .Row
    
        Rows ("6:" & LastRow) .Sort _
        Key1: = Cells (6, ActiveCell.Column), _
        Order1: = xlAscending
End Sub

#### 7. Удаление пустых пространств

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

Sub TrimTheSpaces()
    
        Dim MyRange As Range
        Dim MyCell As Range
    
        Select Case MsgBox("Can't Undo this action.  " & _
                            "Save Workbook First?", vbYesNoCancel)
            Case Is = vbYes
            ThisWorkbook.Save
            Case Is = vbCancel
            Exit Sub
        End Select
    
        Set MyRange = Selection
    
        For Each MyCell In MyRange
    
            If Not IsEmpty(MyCell) Then
                MyCell = Trim(MyCell)
            End If
    
        Next MyCell
End Sub

#### 8. Выделение дубликатов цветом

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

Sub HighlightDuplicates()
    
        Dim MyRange As Range
        Dim MyCell As Range
    
        Set MyRange = Selection 
    
        For Each MyCell In MyRange 
    
            If WorksheetFunction.CountIf(MyRange, MyCell.Value) > 1 Then
                MyCell.Interior.ColorIndex = 36
            End If
    
        Next MyCell
End Sub

#### 9. Выделение десяти самых высоких чисел

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

Sub TopTen()
    Selection.FormatConditions.AddTop10
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
        With Selection.FormatConditions(1)
            .TopBottom = xlTop10Top
            
            .Rank = 10
            .Percent = False
        End With
        With Selection.FormatConditions(1).Font
            .Color = -16752384
            .TintAndShade = 0
        End With
        With Selection.FormatConditions(1).Interior
            .PatternColorIndex = xlAutomatic
            .Color = 13561798
            .TintAndShade = 0
        End With
    Selection.FormatConditions(1).StopIfTrue = False
End Sub

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

#### 10. Выделение данных больших чем данные число

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

Sub HighlightGreaterThanValues()
    Dim i As Integer
    i = InputBox("Enter Greater Than Value", "Enter Value")
    Selection.FormatConditions.Delete
    
    Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, Formula1:=i
    Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
        With Selection.FormatConditions(1)
            .Font.Color = RGB(0, 0, 0)
            .Interior.Color = RGB(31, 218, 154)
        End With
End Sub

Вы тоже можете настроить этот код, чтобы выделить более низкие чисел.

#### 11. Выделение ячеек комментариями
Простой макрос, который выделяет все ячейки, содержащие комментарии:

Sub HighlightCommentCells()
    Selection.SpecialCells(xlCellTypeComments).Select
    Selection.Style= "Note"
End Sub

#### 12. Выделение ячеек со словами с ошибками

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

 Sub ColorMispelledCells()
    For Each cl In ActiveSheet.UsedRange
        If Not Application.CheckSpelling(Word:=cl.Text) Then _
        cl.Interior.ColorIndex = 28
    Next cl
End Sub

13. Создание сводной таблицы

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

Sub PivotTableForExcel2007()
    Dim SourceRange As Range
    Set SourceRange = Sheets("Sheet1").Range("A3:N86")
    ActiveWorkbook.PivotCaches.Create( _
    SourceType:=xlDatabase, _
    SourceData:=SourceRange, _
    Version:=xlPivotTableVersion12).CreatePivotTable _
    TableDestination:="", _
    TableName:="", _
    DefaultVersion:=xlPivotTableVersion12
End Sub

14. Отправка активного файла по электронной почте

Мой любимый код VBA. Он позволяет вам прикреплять и отправлять файл, с которым вы работаете, с предопределенным адресом электронной почты, заголовком сообщения и телом сообщения! Сначала Вам нужно сделать референцию в Excel на Microsoft Outlook (в редакторе Excel VBA, нажмите tools => references и выберите Microsoft Outlook).

Sub SendFIleAsAttachment()
    
    
        Dim OLApp As Outlook.Application
        Dim OLMail As Object
    
        Set OLApp = New Outlook.Application
        Set OLMail = OLApp.CreateItem(0)
        OLApp.Session.Logon  
    
        With OLMail
        .To = "admin@datapigtechnologies.com; mike@datapigtechnologies.com"
        .CC = ""
        .BCC = ""
        .Subject = "This is the Subject line"
        .Body = "Hi there"
        .Attachments.Add ActiveWorkbook.FullName
        .Display  
        End With
    
        Set OLMail = Nothing
        Set OLApp = Nothing
End Sub

15. Вставка всех графиков Excel в презентацию PowerPoint

Очень удобный макрос, который позволяет вам добавлять все ваши графики Excel в презентацию Powerpoint одним щелчком мыши:

Sub SendExcelFiguresToPowerPoint()
    
    
        Dim PP As PowerPoint.Application
        Dim PPPres As PowerPoint.Presentation
        Dim PPSlide As PowerPoint.Slide
        Dim i As Integer
    
        Sheets("Slide Data").Select
            If ActiveSheet.ChartObjects.Count < 1 Then
                MsgBox "No charts existing the active sheet"
                Exit Sub
            End If
    
        Set PP = New PowerPoint.Application
        Set PPPres = PP.Presentations.Add
        PP.Visible = True
    
            For i = 1 To ActiveSheet.ChartObjects.Count
            
                ActiveSheet.ChartObjects(i).Chart.CopyPicture _
                Size:=xlScreen, Format:=xlPicture
                Application.Wait (Now + TimeValue("0:00:1"))
            
                ppSlideCount = PPPres.Slides.Count
                Set PPSlide = PPPres.Slides.Add(SlideCount + 1, ppLayoutBlank)
                PPSlide.Select
            
                PPSlide.Shapes.Paste.Select
                PP.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, True
                PP.ActiveWindow.Selection.ShapeRange.Align msoAlignMiddles, True
            Next i
    
        Set PPSlide = Nothing
        Set PPPres = Nothing
        Set PP = Nothing
End Sub

16. Вставка таблицы Excel в MS Word

Таблицы Excel обычно помещаются внутри текстовых документов. Вот один автоматический способ экспорта таблицы Excel в MS Word:

 Sub ExcelTableInWord()
    
    
        Dim MyRange As Excel.Range
        Dim wd As Word.Application
        Dim wdDoc As Word.Document
        Dim WdRange As Word.Range
    
       Sheets("Revenue Table").Range("B4:F10").Cop
    
        Set wd = New Word.Application
        Set wdDoc = wd.Documents.Open _
        (ThisWorkbook.Path & "" & "PasteTable.docx")
        wd.Visible = True
    
        Set WdRange = wdDoc.Bookmarks("DataTableHere").Rangе
    
        On Error Resume Next
        WdRange.Tables(1).Delete
        WdRange.Paste 
    
        WdRange.Tables(1).Columns.SetWidth _
        (MyRange.Width / MyRange.Columns.Count), wdAdjustSameWidth
    
        wdDoc.Bookmarks.Add "DataTableHere", WdRange
    
        Set wd = Nothing
        Set wdDoc = Nothing
        Set WdRange = Nothing
End Sub

17. Извлечение слов из текста

Мы можем использовать формулы, если хотим извлечь определенное количество символов. Но что, если мы хотим извлечь только одно слово из предложения или диапазон слов в ячейке? Для этого мы можем сами создать функцию Excel с помощью VBA. Это одна из самых удобных функций VBA, поскольку она позволяет создавать собственные формулы, которые отсутствуют в MS Excel. Давайте продолжим и создадим две функции: findword() и findwordrev():

Function FindWord(Source As String, Position As Integer) As String
     On Error Resume Next
     FindWord = Split(WorksheetFunction.Trim(Source), " ")(Position - 1)
     On Error GoTo 0
End Function

Function FindWordRev(Source As String, Position As Integer) As String
     Dim Arr() As String
     Arr = VBA.Split(WorksheetFunction.Trim(Source), " ")
     On Error Resume Next
     FindWordRev = Arr(UBound(Arr) - Position + 1)
     On Error GoTo 0
End Function

Отлично, мы уже создали две новые функции в Excel! Теперь попробуйте использовать их в Excel. Функция = FindWordRev (A1,1) берет последнее слово из ячейки A1. Функция = FindWord (A1,3) берет третье слово из ячейки A1 и т. Д.

18. Защита данных в MS Excel

Иногда мы хотим защитить данных нашего файла, чтобы только мы могли его изменять. Вот как это сделать с VBA:

Sub ProtectSheets()
    
        Dim ws As Worksheet
    
        For Each ws In ActiveWorkbook.Worksheets
    
        ws.Protect Password:="1234"
        Next ws
End Sub

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

© 2018 Атанас Йонков


Литература:
1. ExcelChamps.com: Top 100 Useful Excel Macro [VBA] Codes Examples.
2. Michael Alexander, John Walkenbach (2012). 101 Ready-To-Use Excel Macros.
3. BG Excel.info: 14 ready-to-use Macros for Excel.

в приложении

Лекция: «Создание макросов  в приложении MS  Ехсеl».

 План лекции для студентов II курса:

  • Понятие макроса.
  • Запись простых макросов.
  • Выполнение макросов.
  • Назначение макроса для графическич изображений.
  • Удаление макросов из списка макросов.
  • Ограниченность макросов.

Понятие макроса.

Основное назначение макросов — это автоматизация работы пользователя.        

Макрос — это имеющая имя последовательность заданных пользователем команд, и действий хранящаяся в форме программы на языке Visual Basic for Application (VВА), которую может выполнить 
приложение.

На сегодняшний день Visual Basic for Application (VВА) — один из самых простых в изучении и применении языков программирования для автоматизации приложений, входящих в пакет Microsoft Offic. 
Запись макросов в приложении Ехсеl:

Для работы с макросами в приложении Ехсеl  имеется специальная панель.
Меню:
 Вид- Панель инструментов — Visual Basic.

http://xn--i1abbnckbmcl9fb.xn--p1ai/%D1%81%D1%82%D0%B0%D1%82%D1%8C%D0%B8/520385/1.gif

                                                                                        Рисунок 1

Общий алгоритм записи макроса:

  • Нажать на кнопку «Запись макроса» на панели Visual Basic
  • В диалоговом окне «Запись макроса» дать имя макросу.

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

http://xn--i1abbnckbmcl9fb.xn--p1ai/%D1%81%D1%82%D0%B0%D1%82%D1%8C%D0%B8/520385/2.gif

                                                                                          Рисунок 2

  • Выполнить действия, которые нужно записать.
  • Нажать кнопку «Остановить запись» на панели  Visual Basic.

Задание I

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

http://xn--i1abbnckbmcl9fb.xn--p1ai/%D1%81%D1%82%D0%B0%D1%82%D1%8C%D0%B8/520385/3.gif

                                                                                 Рисунок 3

1. В ячейку А4 введите ваше имя, в ячейку А5 введите фамилию, в ячейку А6 — город, где вы родились, в ячейку А7 — название страны.

2. Установите курсор в ячейке А4.
3. На панели   Visual Basic нажмите кнопку «Запись макроса» 
http://xn--i1abbnckbmcl9fb.xn--p1ai/%D1%81%D1%82%D0%B0%D1%82%D1%8C%D0%B8/520385/4.gifРисунок 4

4. Введите название макроса «ЦветШрифт» и нажмите клавишу «ОК». На экране появится панель инструментов «Остановить запись» http://xn--i1abbnckbmcl9fb.xn--p1ai/%D1%81%D1%82%D0%B0%D1%82%D1%8C%D0%B8/520385/5.gif Рисунок 5

ВНИМАНИЕ!  КАЖДОЕ ВАШЕ ДЕЙСТВИЕ ЗАПИСЫВАЕТСЯ.

5. Выполните команду Формат – Ячейки — Шрифт — Размер 11- Цвет  красный — ОК.
6. Щелкните на кнопке «Остановить запись» на панели Visual Basic. Запись макроса завершена.

Выполнение макросов.

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

1.Установить курсор в ячейку А4.

2.Выполнить команду Сервис-Макрос-Макросы

http://xn--i1abbnckbmcl9fb.xn--p1ai/%D1%81%D1%82%D0%B0%D1%82%D1%8C%D0%B8/520385/6.gif

                                                                                          Рисунок 6

3.Выделите макрос ЦветШрифт и Выполнить.
4.Аналогично с ячейками А3 и А4.

Назначение макроса графическим изображениям.

Продолжим работу с заданием I.

1. Используя панель Рисование, нарисуйте на листе любую автофигуру.           
2.Щелкните правой кнопкой мыши на изображении и в открывшемся контекстном меню выберите команду
Назначить макрос. Отобразится диалоговое окно Назначить макрос объекту.
3. Выберите макрос «ЦветШрифт» и подтвердите выполнение операции.
4. Щелкните вне графического изображения, чтобы снять выделение с объекта.
5. Введите число и проверьте выполнение макроса.

                                                                                      Рисунок 7

Удаление макросов из списка макросов:

Для того, чтобы удалить макрос из списка макросов диалогового окна Макросы надо:

1. Выполнить команду Сервис — Макрос — Макросы
2. Выделить макрос, подлежащий удалению и щелкнуть по кнопке «Удалить».
3. Подтвердить выполнение операции в специальном окне, которое появится.

Ограниченность макросов

В Ехсеl многие процедуры можно выполнить с помощью макросов, но макросы имеют и ограничения. С помощью макросов нельзя выполнить различные действия в зависимости от содержимого ячейки, нельзя вызвать некоторые диалоговые окна Ехсе1, например, сохранить документ, нельзя отобразить и использовать пользовательские формы ввода данных.
Эти ограничения приводят к необходимости создания программ на VВА. 
Задания для самостоятельного выполнения.

1.Введите в диапазон F1:F5 любые числа. Создайте макрос для очистки диапазона F1:F5. С помощью панели инструментов «Рисование» создайте кнопку с надписью «Очистить». Назначьте кнопке созданный макрос.
2. Введите в диапазон С2:С6 фамилии ваших друзей, а в диапазон D2:D6 занесите их телефоны.

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

Задание II. Текст по столбцам

В столбец А введите исходные данные:

http://xn--i1abbnckbmcl9fb.xn--p1ai/%D1%81%D1%82%D0%B0%D1%82%D1%8C%D0%B8/520385/8.gif
Рисунок 8

                                                                                            Рисунок 9

Необходимо номера и телефоны разнести по разным столбцам.
В
 Ехсеl существует специальная команда для выполнения этой операции

Данные — Текст по столбцам.

Технология работы:

  1. Выделите все ячейки столбца А, где занесены исходные данные;
  2. Выполните команду Данные-Текст по столбцам, появится диалоговое окно. 
    В этом окне укажите формат данных 
    –« с разделителями». Нажмите кнопку «Далее».
  3. Во втором диалоговом окне укажите символом – разделителем является «пробел» Нажмите кнопку «Далее».
  4. В третьем окне установите для каждого столбца данных формат данных
    ( текстовой) и     «Поместить в – щелкните по нужной ячейки ( =$C$1 )»- первый столбец,    (=$D$1) – второй столбец – 
    «Готово»

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

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

http://xn--i1abbnckbmcl9fb.xn--p1ai/%D1%81%D1%82%D0%B0%D1%82%D1%8C%D0%B8/520385/10.gif
Рисунок10.

Технология работы.

  1. Откройте лист «Итоги» 
  2. В столбце «Сумма» значение рассчитайте по формуле
  3. Отсортируйте таблицу по столбцу «Товар».

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

Рассмотрим использование команды «Итоги» на нашем примере. Подсчитаем, на какую сумму было продано отдельно ксероксов и отдельно факсов.

1.Установим курсор на любую ячейку отсортированной таблицы.
2.Выполним команду
 Данные-Итоги. В появившемся диалоговом окне «Промежуточные итоги» в строке При каждом изменении в выберем из открывшегося списка название графы «Товары», в строке Операция — функцию Сумма, в строке Добавить итоги по — выберем название графы «Сумма» — ОК

Создание макросов.

Установите курсор на исходную таблицу. Если таблица не отсортирована ,отсортируйте по полю «Товар» Данные-Сортировка.

1.Для создания 1 макроса активизируйте любую ячейку таблицы и  MacroRecorde  с помощью команды  Сервис-Макрос-Начать запись. Назначьте имя макроса «Итоги»- ОК
2.Выполним команду
 Данные-Итоги
В диалоговом окне выберете в строке
При каждом изменении
 в выберем из открывшегося списка название графы «Товары», в строке Операция — функцию Сумма, в строке Добавить итоги по — выберем название графы «Сумма» — ОК 
3.Активизируйте опцию 
Итоги под данным. Нажмите клавишу ОК
Остановите запись макроса, нажав на кнопку 
Остановить запись.
Просмотрите записанную программу. Для этого выполните команду
 Сервис-Макрос-Макросы.    Выделите макрос «Итоги» и нажмите кнопку Изменить. Это вызовет появление главного окна редактора VВА с текстом записанного макроса .
4. Для создания 2-ого 
макроса «Убрать промежуточные итоги»:
Активизируйте MacroRecorde с помощью команды
 Сервис-Макрос-Начать запись. Появится диалоговое окно «Запись макроса». Назначить имя макроса «Убратьитоги» Установите курсор в исходную таблицу. Выполните команду Данные—Итоги. В появившемся окне щелкнуть по кнопке «Убрать все». Остановите запись макроса, нажав на кнопку Остановить запись.
         На листе «Итоги» создадим кнопки и привяжем к ним созданные макросы .

Подведение итогов урока: 

  1. Как автоматизировать действия в приложениях.
  2. Дать понятие Макроса.
  3. Перечислить порядок записи простых Макросов               
  4. Выполнение Макросов.
  5. Назначение Макроса графическим объектам.
  6. Ограниченность Макросов.
  7. Попробуйте создать Макросы в Microsoft Word.

#Руководства

  • 23 май 2022

  • 0

Как с помощью макросов автоматизировать рутинные задачи в Excel? Какие команды они выполняют? Как создать макрос новичку? Разбираемся на примере.

Иллюстрация: Meery Mary для Skillbox Media

Ксеня Шестак

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

Макрос (или макрокоманда) в Excel — алгоритм действий в программе, который объединён в одну команду. С помощью макроса можно выполнить несколько шагов в Excel, нажав на одну кнопку в меню или на сочетание клавиш.

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

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

В статье разберёмся:

  • как работают макросы и как с их помощью избавиться от рутины в Excel;
  • какие способы создания макросов существуют и как подготовиться к их записи;
  • как записать и запустить макрос начинающим пользователям — на примере со скриншотами.

Общий принцип работы макросов такой:

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

Макросы могут выполнять любые действия, которые в них запишет пользователь. Вот некоторые команды, которые они умеют делать в Excel:

  • Автоматизировать повторяющиеся процедуры.

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

  • Объединять работу нескольких программ Microsoft Office.

    Например, с помощью одного макроса можно создать таблицу в Excel, вставить и сохранить её в документе Word и затем отправить в письме по Outlook.

  • Искать ячейки с данными и переносить их в другие файлы.

    Этот макрос пригодится, когда нужно найти информацию в нескольких объёмных документах. Макрос самостоятельно отыщет её и принесёт в заданный файл за несколько секунд.

  • Форматировать таблицы и заполнять их текстом.

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

  • Создавать шаблоны для ввода данных.

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

  • Создавать новые функции Excel.

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

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

В Excel и других программах Microsoft Office макросы создаются в виде кода на языке программирования VBA (Visual Basic for Applications). Этот язык разработан в Microsoft специально для программ компании — он представляет собой упрощённую версию языка Visual Basic. Но это не значит, что для записи макроса нужно уметь кодить.

Есть два способа создания макроса в Excel:

  • Написать макрос вручную.

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

  • Записать макрос с помощью кнопки меню Excel.

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

Разберёмся на примере, как создать макрос с помощью второго способа.

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

Так выглядят таблицы с продажами автосалона в первоначальном виде
Скриншот: Skillbox Media

Пользоваться таким отчётом неудобно — нужно сделать его наглядным. Запишем макрос при форматировании таблицы с продажами за январь и затем применим его к двум другим таблицам.


Готовимся к записи макроса

Кнопки для работы с макросами в Excel находятся во вкладке «Разработчик». Эта вкладка по умолчанию скрыта, поэтому для начала разблокируем её.

В операционной системе Windows это делается так: переходим во вкладку «Файл» и выбираем пункты «Параметры» → «Настройка ленты». В открывшемся окне в разделе «Основные вкладки» находим пункт «Разработчик», отмечаем его галочкой и нажимаем кнопку «ОК» → в основном меню Excel появляется новая вкладка «Разработчик».

В операционной системе macOS это нужно делать по-другому. В самом верхнем меню нажимаем на вкладку «Excel» и выбираем пункт «Параметры…».

Нажимаем сюда, чтобы вызвать панель с дополнительными параметрами Excel в macOS
Скриншот: Skillbox Media

В появившемся окне нажимаем кнопку «Лента и панель».

Выбираем параметр «Лента и панель»
Скриншот: Skillbox Media

Затем в правой панели «Настроить ленту» ищем пункт «Разработчик» и отмечаем его галочкой. Нажимаем «Сохранить».

Отмечаем пункт «Разработчик» и сохраняем изменения
Скриншот: Skillbox Media

Готово — вкладка «Разработчик» появилась на основной панели Excel.

Теперь можно работать с макросами
Скриншот: Skillbox Media

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

Перед записью макросов нужно сохранить документ в формате с их поддержкой
Скриншот: Skillbox Media

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

  • Макрос записывает все действия пользователя.

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

  • Работу макроса нельзя отменить.

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

  • Макрос выполняет свой алгоритм только для записанного диапазона таблиц.

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

Для начала записи макроса перейдём на вкладку «Разработчик» и нажмём кнопку «Записать макрос».

Нажимаем сюда, чтобы начать запись макроса
Скриншот: Skillbox Media

Появляется окно для заполнения параметров макроса. Нужно заполнить поля: «Имя макроса», «Сохранить в», «Сочетание клавиш», «Описание».

Так выглядит окно с параметрами макроса
Скриншот: Skillbox Media

«Имя макроса» — здесь нужно придумать и ввести название для макроса. Лучше сделать его логически понятным, чтобы в дальнейшем можно было быстро его найти.

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

«Сохранить в» — здесь нужно выбрать книгу, в которую макрос сохранится после записи.

Если выбрать параметр «Эта книга», макрос будет доступен при работе только в этом файле Excel. Чтобы макрос был доступен всегда, нужно выбрать параметр «Личная книга макросов» — Excel создаст личную книгу макросов и сохранит новый макрос в неё.

«Сочетание клавиш» — здесь к уже выбранным двум клавишам (Ctrl + Shift в системе Windows и Option + Cmd в системе macOS) нужно добавить третью клавишу. Это должна быть строчная или прописная буква, которую ещё не используют в других быстрых командах компьютера или программы Excel.

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

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

В нашем случае с форматированием таблицы заполним поля записи макроса следующим образом и нажмём «ОК».

Заполняем поля и жмём «ОК», чтобы начать запись
Скриншот: Skillbox Media

После этого начнётся запись макроса — в нижнем левом углу окна Excel появится значок записи.

Началась запись макроса — теперь в него попадут все клики мышки и нажатия клавиш
Скриншот: Skillbox Media

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

Важно: в нашем случае у таблиц продаж за январь, февраль и март одинаковое количество столбцов, но разное количество строк. Чтобы в случае со второй и третьей таблицей макрос сработал корректно, при форматировании выделим диапазон так, чтобы в него попали не только строки самой таблицы, но и строки ниже неё. Для этого нужно выделить столбцы в строке с их буквенным обозначением A–G, как на рисунке ниже.

Так макрос будет работать и для таблиц с большим количеством строк
Скриншот: Skillbox Media

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

Так макрос отформатирует только выбранные строки: если в других таблицах строк окажется больше, они останутся в первоначальном виде
Скриншот: Skillbox Media

После всех манипуляций с оформлением таблица примет такой вид:

Так выглядит таблица после форматирования
Скриншот: Skillbox Media

Проверяем, все ли действия с таблицей мы выполнили, и останавливаем запись макроса. Сделать это можно двумя способами:

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

Нажимаем сюда, чтобы остановить запись макроса
Скриншот: Skillbox Media

Готово — мы создали макрос для форматирования таблиц в границах столбцов A–G. Теперь его можно применить к другим таблицам.


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

Перейдём в лист со второй таблицей «Февраль_2022». В первоначальном виде она такая же нечитаемая, как и первая таблица до форматирования.

Так выглядит таблица до запуска макроса
Скриншот: Skillbox Media

Отформатируем её с помощью записанного макроса. Запустить макрос можно двумя способами:

  • Нажать комбинацию клавиш, которую выбрали при заполнении параметров макроса — в нашем случае Option + Cmd + Ф.
  • Перейти во вкладку «Разработчик» и нажать кнопку «Макросы».

Нажимаем сюда, чтобы вызвать панель для выбора макроса
Скриншот: Skillbox Media

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

Нажимаем сюда, чтобы запустить макрос для форматирования таблицы
Скриншот: Skillbox Media

Готово — вторая таблица с помощью макроса форматируется так же, как и первая.

За пару секунд с помощью макроса исходная таблица принимает такой вид
Скриншот: Skillbox Media

То же самое можно сделать и на третьем листе для таблицы продаж за март. Более того, этот же макрос можно будет запустить и в следующем квартале, когда сервис автосалона выгрузит таблицы с новыми данными.

Научитесь: Excel + Google Таблицы с нуля до PRO
Узнать больше

ФЕДЕРАЛЬНОЕ
АГЕНТСТВО ПО ОБРАЗОВАНИЮ

ГОСУДАРСТВЕННОЕ
ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО
ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

ДОНСКОЙ
ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра
«Информатика»

СОЗДАНИЕ
МАКРОСОВ-ФУНКЦИЙ В EXCEL

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

по
дисциплине «Информационные технологии»

для
студентов технических специальностей

Ростов-на-Дону
2008

Составители:
д. т. н., проф. Б. В. Соболь, к. ф.-м. н., доц.
И. М. Пешхоев

Создание
макросов-функций в Excel:
Методические указания к выполнению
лабораторных работ по дисциплине
«Информационные технологии» для
студентов технических специальностей.
— Ростов н/Д: Издательский центр ДГТУ,
2008. — 16 с.

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

Печатается
по решению методической комиссии
факультета «Информатика и вычислительная
техника»

Научный
редактор доцент
Г. И. Каныгин

©
Издательский центр ДГТУ, 2008.

Лабораторная
работа № 1

Тема:
Программирование макросов для функций,
задаваемых с условиями.

Цель
работы: Научиться использовать макросы
Excel
для упрощения вычислений.

Форма
отчета: Выполнение индивидуального
зачетного задания.

Примеры
выполнения лабораторной работы

Пример
1.

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

Решение
с помощью формулы
Excel.
Создадим новый файл в программе Excel.
Оформление решения показано в таблице
1.

На
Лист1 в ячейках A1
и B1
введем обозначения x
и y.

Присвоим
ячейке A2
имя x.
Для этого выполним команду «Вставка —
Имя — Присвоить — x».

Пусть
значение переменной x
равно 0,5. Запишем число 0,5 в ячейке A2,
а значение функции y
вычислим в ячейке B2.
Для этого введем в B2
формулу

=ЕСЛИ(x<=1;x^3+1;ЕСЛИ(x<=3;SIN(x);EXP(-x)*x))

Таблица
1

A

B

1

x

y

2

0,5

=ЕСЛИ(x<=1;x^3+1;ЕСЛИ(x<=3;SIN(x);EXP(-x)*x))

В
результате вычисления в ячейке B2
появится значение 1,125.

Введем
в ячейку A2
значение 1,5. Тогда в B2
появится значение 0,997494987. Если введем
в ячейку A2
значение 3,5, то в B2
появится значение 0,105690842.

Решение
с помощью макроса
Excel.
Создадим
в программе Excel
пользовательскую функцию y(x)
для вычисления данной функции, пользуясь
встроенным языком Visual
Basic.

Приведем
алгоритм создания пользовательcкой
функции-макроса:

1)
Выполним команду меню «Сервис — Макрос
— Редактор
Visual
Basic».
Откроется окно «Microsoft
Visual
Basic».

2)
Выполним команду меню «Insert
— Module»
и введём текст программы-функции
(Комментарий после апострофа вводить
не надо)

Function
y(x)
‘ Заголовок описания функции y(x)

If
x <= 1 Then ‘ если
x <= 1 то

y
= x ^ 3 + 1 ‘ y = x ^ 3 + 1

ElseIf
x
<= 3 Then
‘ иначе если x
<= 3 то

y
= Sin(x) ‘ y = Sin(x)

Else
‘ иначе

y
= Exp(-x) * x ‘ y = Exp(-x) * x

End
If
‘ конец оператора если

End
Function
‘ конец описания функции

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

Например,
введем в ячейки С2, С3 и С4 соответственно
формулы =y(0,5),
=y(1,5),
=y(3,5).
В этих ячейках получим значения 1,125,
0,997495, 0,105691.

Пример
2.

Построить таблицу значений и график
функции из примера 2 на отрезке

с шагом 0,2.

Решение
с использованием макроса.

Мы будем использовать макрос-функцию
y(x),
созданную в примере 1, поэтому откроем
файл примера 1 и перейдем на Лист2.

В
ячейках A1
и B1
введем обозначения x
и y.

Введем
в A2,
A3
значения 0 и 0,2. Выделим ячейки A2:A3
и протянем маркер заполнения (правый
нижний угол) до ячейки A12.

Введем
в B2
формулу =y(A2).
Протянем ячейку B2
маркером заполнения вниз до B12.
Оформление решения показано в таблице
2.

Таблица
2

A

B

1

x

y

2

0

1

3

0,2

1,008

4

0,4

1,064

5

0,6

1,216

6

0,8

1,512

7

1

2

8

1,2

0,932039

9

1,4

0,98545

10

1,6

0,999574

11

1,8

0,973848

12

2

0,909297

Выделим
диапазон A1:B12
и щелкнем указателем мыши на панели
инструментов ярлык «Мастер диаграмм».
Выберем тип «Точечная» и кнопку «Готово».

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

Таблица
3

№ варианта

Функция

Отрезок

Шаг

1

[0;
3]

0,1

2

[1;
3]

0,2

3

[0;
3]

0,3

4

[1;
5]

0,2

5

[0;
3]

0,1

6

[2;
5]

0,25

Продолжение
табл. 3

№ варианта

Функция

Отрезок

Шаг

7

[3;
5]

0,25

8

[0;
3]

0,1

9

[1;
3]

0,4

10

[0;
3]

0,05

11

[1;
5]

0,4

12

[0;
4]

0,2

13

[2;
5]

0,3

Окончание
табл. 3

№ варианта

Функция

Отрезок

Шаг

14

[0;
5]

0,4

15

[1;
6]

0,5

16

[0;
3]

0,1

17

[1;
3]

0,2

18

[0;
3]

0,3

19

[0;
5]

0,2

20

[0;
3]

0,1

Лабораторная
работа № 2

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

Цель
работы: Научиться использовать макросы
Excel
для упрощения вычислений с матрицами
и векторами.

Форма
отчета: Выполнение индивидуального
зачетного задания.

Пример
выполнения лабораторной работы

Пример
3.
Вычислить
таблицу значений вектор-функции
U(t)
= U(x,
y,
z),
где x
= x(t)
= t
2,
y
= y(t)
= sin
t,
z
= z(t)
= cos
t,

для
значений переменной t
= 0; 0,1; …, 1.

Решение
с помощью макроса.

Создадим макрос-функцию U(t),
которая вычисляет значение данной
вектор-функции.

1)
Выполним команду меню «Сервис — Макрос
— Редактор
Visual
Basic».
Откроется окно «Microsoft
Visual
Basic».

2)
Выполним команду меню «Insert
— Module»
и введём текст следующей программы-функции

Option
Base
1 ‘ Нижнее значение индекса в массивах
равно 1

Function
U(t)

Dim
uu(3)
‘ Описание вектора из трех
элементов

x
= t
^ 2: uu(1)
= x
‘ вычисление компонент вектор-функции

y
= Sin(t): uu(2) = y

z
= Cos(t): uu(3) = z

U
= uu
‘ присваивание имени U
функции вектора uu

End
Function

3)
Перейдем из редактора Visual
Basic
в Excel
и введем в ячейках A1:D1
обозначения, как показано в табл. 4.

Таблица
4

A

B

C

D

1

t

x

y

z

2

0

0

0

0

3

0,1

0

0,01

0,099833

4

0,2

0

0,04

0,198669

5

0,3

0

0,09

0,29552

6

0,4

0

0,16

0,389418

7

0,5

0

0,25

0,479426

8

0,6

0

0,36

0,564642

9

0,7

0

0,49

0,644218

10

0,8

0

0,64

0,717356

11

0,9

0

0,81

0,783327

12

1

0

1

0,841471

Введем
в ячейки A2,
A3
значения 0 и 0,1. Выделим ячейки A2:A3
и маркером заполнения протянем вниз до
A12.

Выделим
ячейки B2:D2,
введем формулу =U(A2) и удерживая нажатыми
клавиши Ctrl
и Shift
нажмем Enter.
В ячейках B2:D2
появятся числовые значения.

Выделим
ячейки B2:D2
и маркером заполнения протянем вниз до
строки B12:D12.

Пример
4.
Вычислить
суммы элементов строк матрицы, содержащей
4 строки и 3 столбца (табл. 5).

Таблица
5

1

-1

9

2

2

4

3

3

1

4

5

3

Решение
с помощью встроенных функций
Excel.
Создадим
файл программы Excel.

Запишем
элементы данной матрицы в диапазоне
A1:C4
(табл. 6).

В
ячейку D1
введем формулу =СУММ(A1:C1).

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

Решение
с помощью макроса.

Создадим макрос-функцию Sum_str(x),
которая для заданной матрицы x,
содержащей M
строк и N
столбцов, вычисляет вектор-столбец из
M
элементов, содержащий суммы элементов
соответствующих строк матрицы.

1)
Выполним команду меню «Сервис — Макрос
— Редактор
Visual
Basic».
Откроется окно «Microsoft
Visual
Basic».

2)
Выполним команду меню «Insert
— Module»
и введём текст следующей программы-функции

Option
Base 1

Function
Sum_str(x)

Dim
y()

Dim
M As Integer, N As Integer

M
= x.Rows.Count

N
= x.Columns.Count

ReDim
y(M)

For
i = 1 To M:

y(i)
= 0: For j = 1 To N: y(i) = y(i) + x(i, j): Next j

Next
i

Sum_str
= Application.Transpose(y)

End
Function

3)
Выделим диапазон ячеек E1:E4,
введем формулу =Sum_str(A1:C4) и удерживая
нажатыми клавиши Ctrl
и Shift
нажмем Enter.
В ячейках E1:E4
появятся числовые значения, совпадающие
со значениями в D1:D4.

Таблица
6

A

B

C

D

E

1

1

-1

9

9

9

2

2

2

4

8

8

3

3

3

1

7

7

4

4

5

3

12

12

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Like this post? Please share to your friends:
  • Задания на логические функции excel 9 класс
  • Задания на логические формулы в excel
  • Задания на копирование формул в excel
  • Задания на контрольную работу по excel
  • Задания на дом по excel