{"text_format":"3","workbook":"xlsx","n_sheets":5,"sheets":["И2_лр30","VBA - инструкции и комментарии","VBA - переменные","VBA - переходы","VBA - циклы"],"read":"whole","date_system":"1900"}

{"sheet":"И2_лр30","index":0,"n_rows":148,"n_cols":5,"rows_kept":148}
["                                      Лабораторная работа № 30 по дисциплине \"Информатика модуль 2\""]
[]
["          Тема: Формирование документа с использованием макросов ( начало )."]
["                   Использование рабочих ячеек."]
[]
[]
["          ВНЕСЕНИЕ ИЗМЕНЕНИЙ В ФАЙЛ"]
[]
["1. Внесите изменения в Ваш файл: "]
[]
["   – вставьте непосредственно после листа Склад лист с именем Выдача; "]
[]
["   – скопируйте все ячейки листа Склад на лист Копия ( можно выполнением соответствующего макроса ); "]
[]
["   – на листе Склад добавьте к списку столбец с заголовком Количество выдачи, отформатируйте этот"]
["     заголовок так же, как и остальные заголовки списка и, кроме того, выделите ячейку с этим заголовком"]
["     желтым фоном",null,"."]
[]
[]
["          СОЗДАНИЕ И ПРОВЕРКА ВЫПОЛНЕНИЯ МАКРОСА С ИМЕНЕМ Выдача"]
[]
["2. Создайте в Вашем файле макрос с именем Выдача, соответствующий следующей последовательности "]
["   действий: "]
[]
["   (1) – перейти с любого другого листа Вашего файла на лист Выдача, выделить все ячейки этого листа"]
["          и выполнить полную очистку выделенных ячеек"]
["                               ( на ленте на вкладке ГЛАВНАЯ в группе Редактирование для кнопки Очистить"]
["                                                       в раскрывающемся списке этой кнопки выполнить команду Очистить все);"]
["   (2) – на листе Выдача в строке 4 ввести слева направо в рядом расположенные ячейки этой строки начиная"]
["          с ячейки A4 следующие заголовки:"]
[null,"№ п/п"]
[null,"Наименование"]
[null,"Единица измерения"]
[null,"Цена"]
[null,"Количество"]
[null,"Стоимость"]
["   (3) – отформатировать диапазон с заголовками по Вашему усмотрению;"]
["   (4) – изменить ширину столбцов с заголовками по Вашему усмотрению; "]
["   (5) – в строках над заголовками расположить и отформатировать по Вашему усмотрению:"]
["          в строке 1 – название Вашего предприятия,"]
["          в строке 2 – текст ФАКТУРА № 1, "]
["          в строке 3 – текст Выдача товаров со склада и в отдельной ячейке этой же строки результат выполнения"]
["                            функции СЕГОДНЯ; "]
["   (6) – в столбце с заголовком Стоимость выделить диапазон ячеек, начиная с ячейки в строке 5, и заканчивая "]
["          нижней границей листа и отформатировать этот диапазон в Числовом формате с 2 знаками "]
["          после десятичной запятой;"]
["   (7) – сделать текущей ячейку A5 листа Выдача. "]
[]
[]
["3. На листе Склад выше заголовка столбца списка Количество выдачи создайте"]
["   маленький объект WordArt с текстом Со склада,"]
["                     используя для этого на ленте на вкладке ВСТАВКА в группе Текст кнопку WordArt,"]
["   и затем ( с использованием команд контекстного меню в области этого объекта WordArt "]
["                                              и на ленте в разделе СРЕДСТВА РИСОВАНИЯ элементов вкладки ФОРМАТ )"]
["                измените размеры и вид этого объекта WordArt по Вашему усмотрению,"]
["                назначьте этому объекту WordArt макрос Выдача, "]
["   и в дальнейшем, нажимая этот объект WordArt, используйте его для выполнения макроса Выдача.  "]
[]
[]
["4. Проверьте выполнение созданного макроса. "]
[]
[]
["          СОЗДАНИЕ И ПРОВЕРКА ВЫПОЛНЕНИЯ МАКРОСА С ИМЕНЕМ Строка_выдачи"]
[]
["5. Выполните предварительные действия ( предусловие ) в Вашем файле перед созданием макроса "]
["   с именем Строка_выдачи:"]
[]
["   – на листе Склад в столбце списка с заголовком Количество выдачи введите по Вашему усмотрению "]
["     в одной из строк списка значение количества выдаваемого со склада товара и затем сделайте текущей"]
["     ячейку в начале строки с введенным значением; "]
[]
["   – на листе Выдача сделайте текущей ячейку в начале второй пустой строки ниже введенных "]
["     при выполнении п.2 заголовков;"]
[]
["   – активизируйте окно Вашего файла и сделайте в нем текущим любой лист, кроме листа Склад. "]
[]
[]
["6. Создайте в Вашем файле в режиме ОТНОСИТЕЛЬНЫХ ссылок макрос с именем Строка_выдачи, "]
["   предназначенный для формирования на листе Выдача строки с данными о товаре, выдаваемом "]
["   со склада, и соответствующий следующей последовательности действий: "]
[]
["   (1) – перейти с любого другого листа Вашего файла на лист Склад "]
["          и на листе Склад в текущей строке сделать текущей ячейку непосредственно правее введенного "]
["          значения Количества выдачи и ввести в эту ячейку результат выполнения функции МИН, в качестве"]
["          аргументов которой использовать введенное значение Количества выдачи и значение Количества, "]
["          находящееся левее в этой же строке;"]
["   (2) – на листе Склад текущую ячейку скопировать в буфер обмена "]
["          и затем на этом же листе в текущей строке сделать текущей ячейку с Количеством выдачи "]
["          и вставить только значения из буфера обмена; "]
["   (3) – на листе Склад в текущей строке сделать текущей ячейку с результатом выполнения функции МИН "]
["          и затем очистить содержимое этой ячейки нажатием на клавишу Delete "]
["          ( действия (1) – (3) выполняются на случай, если введенное значение Количества выдачи окажется "]
["          больше находящегося в той же строке значения Количества товаров на складе, при этом ячейка"]
["          в которой временно хранится результат выполнения функции МИН, используется как рабочая ячейка,"]
["          которая после использования может быть очищена );"]
[]
["   – из текущей строки листа Склад копировать только значения из столбцов списка с указанными ниже "]
["     заголовками на лист Выдача в ячейки текущей строки этого листа, расположенные в столбцах "]
["     с соответствующими заголовками:"]
[null,"В режиме ОТНОСИТЕЛЬНЫХ ссылок"]
[null,"С листа Склад",null,null,"На листе Выдача"]
[null,"копирование",null,null,"вставка только значений "]
["   (4) – ","Наименование",null,null,"Наименование"]
["   (5) – ","Единица измерения",null,null,"Единица измерения"]
["   (6) – ","Розничная цена",null,null,"Цена"]
["   (7) – ","Количество выдачи",null,null,"Количество"]
[]
["   (8) – на листе Выдача в текущей строке в ячейку, в которой должно располагаться значение Стоимости"]
["          ввести формулу для вычисления результата умножения Цены на Количество, значения которых "]
["          взять в этой же строке из соответствующих ячеек;"]
["   (9) – на листе Выдача перейти в начало текущей строки ( например, нажатием клавиши Home );"]
[" (10) – на листе Склад перейти в начало текущей строки ( например, нажатием клавиши Home )."]
[]
[]
["7. Проверьте выполнение созданного макроса Строка_выдачи с другими предусловиями: "]
[]
["   – на листе Склад в столбце списка с заголовком Количество выдачи введите по Вашему усмотрению"]
["     в другой строке списка значение количества выдаваемого со склада товара и затем сделайте текущей "]
["     ячейку в начале строки с введенным значением; "]
[]
["   – на листе Выдача сделайте текущей ячейку в начале, например, третьей строки ниже введенных"]
["     при выполнении п.2 заголовков;"]
[]
["   – активизируйте окно Вашего файла и выполните макрос."]
[]
[]
["          СОХРАНЕНИЕ ИЗМЕНЕНИЙ В ФАЙЛЕ"]
[]
["8. Сделайте активным окно Вашего файла и сохраните результаты работы одним из следующих "]
["   способов: "]
["     или нажатием на кнопку Сохранить на панели быстрого доступа,"]
["     или нажатием сочетания клавиш Ctrl+S,"]
["     или после открытия вкладки ФАЙЛ командой Сохранить в левой части окна."]
[]
[]
["          ОТЧЕТ О ВЫПОЛНЕНИИ РАБОТЫ"]
[]
["9. Продемонстрируйте выполнение макроса Выдача с использованием для его запуска объекта WordArt "]
["   на листе Склад ( см. п.3 )."]
[]
["10. Продемонстрируйте выполнение макроса Строка_выдачи с предусловиями в соответствии с пп.5 и 7."]
[]
[]
["          СОХРАНЕНИЕ ИЗМЕНЕНИЙ В ФАЙЛЕ И ЕГО КОПИРОВАНИЕ"]
[]
["11. После отчета о выполнении работы завершите работу с программой Excel с сохранением изменений "]
["   в Вашем файле и скопируйте Ваш файл в Вашу папку Personal на студенческом файловом сервере"]
["   и ( или ), если это возможно, на Вашу флэшку."]

{"sheet":"VBA - инструкции и комментарии","index":1,"n_rows":63,"n_cols":1,"rows_kept":63}
["    ActiveCell.FormulaR1C1 = \"=TODAY()\" 'СЕГОДНЯ()"]
[]
["    ActiveCell.FormulaR1C1 = \"Расчет итоговых сумм по группам товаров\" 'Ввод (заголовка)"]
[]
["    ActiveCell.Offset(0, 1).Range(\"A1\").Select 'Переход вправо на 1 ячейку"]
["    ActiveCell.Offset(0, -1).Range(\"A1\").Select 'Переход влево на 1 ячейку"]
["    ActiveCell.Offset(0, 3).Range(\"A1\").Select 'Переход вправо на 3 ячейки"]
["    ActiveCell.Offset(0, -3).Range(\"A1\").Select 'Переход влево на 3 ячейки"]
["    ActiveCell.Offset(1, 0).Range(\"A1\").Select 'Переход вниз на 1 ячейку"]
["    ActiveCell.Offset(-1, 0).Range(\"A1\").Select 'Переход вверх на 1 ячейку"]
["    ActiveCell.Offset(5, 0).Range(\"A1\").Select 'Переход вниз на 5 ячеек"]
["    ActiveCell.Offset(-4, 0).Range(\"A1\").Select 'Переход вверх на 4 ячейки"]
["    ActiveCell.Offset(5, 3).Range(\"A1\").Select 'Переход вниз на 5 и вправо на 3 ячейки"]
["    ActiveCell.Offset(4, -1).Range(\"A1\").Select 'Переход вниз на 4 и влево на 1 ячейку"]
["    ActiveCell.Offset(-5, 3).Range(\"A1\").Select 'Переход вверх на 5 и вправо на 3 ячейки"]
["    ActiveCell.Offset(-4, -1).Range(\"A1\").Select 'Переход вверх на 4 и влево на 1 ячейку"]
[]
["    Range(\"A1\").Select 'Текущая ячейка A1"]
[]
["    Range(\"F7:F65536\").Select 'Выделение диапазона F7:F65536"]
[]
["    Rows(\"1:5\").Select 'Выделение строк с 1 по 5"]
[]
["    Selection.Clear 'Очистка (полная) выделенных ячеек"]
[]
["    Selection.ClearContents 'Очистка содержимого (Delete)"]
[]
["    Selection.ClearFormats 'Очистка форматов"]
[]
["    Selection.ClearOutline 'Удаление структуры"]
[]
["    Selection.Copy 'Копирование выделенных ячеек в буфер обмена"]
[]
["    Selection.End(xlDown).Select 'Перейти вниз на край области с данными"]
[]
["    Selection.NumberFormat = \"dd/mm/yy\" 'Форматирование в формате даты"]
[]
["    Selection.PasteSpecial Paste:=xlAll, Operation:=xlSubtract, SkipBlanks:= _"]
["        False, Transpose:=False 'Построчное вычитание (Subtract)"]
[]
["    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _"]
["        False, Transpose:=False 'Вставка только значений из буфера обмена"]
[]
["    Selection.Sort Key1:=Range(\"C6\"), Order1:=xlAscending, Header:=xlGuess, _"]
["        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom 'Сортировка"]
[]
["    Selection.Subtotal GroupBy:=3, Function:=xlSum, TotalList:=Array(10, 13), _"]
["        Replace:=True, PageBreaks:=False, SummaryBelowData:=True 'Подведение итогов"]
[]
["    Sheets(\"Склад\").Select 'Текущий лист Склад (или Переход на лист Склад)"]
[]
["    With Selection.Font 'Форматирование"]
["        .Name = \"Arial Cyr\""]
["        .FontStyle = \"полужирный\""]
["        .Size = 12"]
["        .Strikethrough = False"]
["        .Superscript = False"]
["        .Subscript = False"]
["        .OutlineFont = False"]
["        .Shadow = False"]
["        .Underline = xlUnderlineStyleNone"]
["        .ColorIndex = 5"]
["    End With"]

{"sheet":"VBA - переменные","index":2,"n_rows":12,"n_cols":1,"rows_kept":12}
["    ActiveCell = n 'Присвоение текущей ячейке значения переменной n"]
[]
["    ActiveCell.Offset(0, 1) = postav 'Присвоение ячейке, находящейся правее на 1 ячейку"]
["                           '(Offset(0, 1))от текущей ячейки, значения переменной postav"]
[]
["    n = 0 'Присвоение переменной n значения, равного 0"]
[]
["    n = ActiveCell 'Присвоение переменной n значения из текущей ячейки"]
[]
["    n = n + 1 'Увеличение значения переменной n на 1"]
[]
["    postav = Range(\"B3\") 'Присвоение переменной postav значения из ячейки B3"]

{"sheet":"VBA - переходы","index":3,"n_rows":9,"n_cols":1,"rows_kept":9}
["    If условие Then 'Если условие истинно, то"]
["       [инструкции] 'выполняются [инструкции],"]
["    End If          'иначе ничего не выполняется"]
[]
["    If условие Then  'Если условие истинно, то"]
["       [инструкции1] 'выполняются [инструкции1],"]
["    Else             'иначе"]
["       [инструкции2] 'выполняются [инструкции2]"]
["    End If"]

{"sheet":"VBA - циклы","index":4,"n_rows":53,"n_cols":1,"rows_kept":53}
["    Do Until ActiveCell = \"Всего к оплате\""]
["       [инструкции]"]
["    Loop"]
["    'Этот цикл повторяется (Do) до тех пор (Until), пока содержимое текущей ячейки "]
["    '(ActiveCell) не окажется равным (=) значению \"Всего к оплате\"."]
["    'Условие выхода из цикла проверяется перед каждым выполнением цикла."]
["    'При каждом выполнении этого цикла выполняются [инструкции], при выполнении которых"]
["    'может меняться адрес текущей ячейки или(и) ее содержимое."]
["    'Если условие выхода из цикла выполнилось, то происходит переход к инструкции,"]
["    'находящейся ниже строки с Loop."]
[]
["    Do Until ActiveCell = \"\""]
["       [инструкции]"]
["       Sheets(\"Склад\").Select 'Переход на лист Склад"]
["       ActiveCell.Offset(1, 0).Range(\"A1\").Select 'Переход вниз на 1 ячейку"]
["    Loop"]
["    'Этот цикл повторяется (Do) до тех пор (Until), пока содержимое текущей ячейки "]
["    '(ActiveCell) не окажется равным (=) значению \"\" (содержимому пустой ячейки)."]
["    'Условие выхода из цикла проверяется перед каждым выполнением цикла."]
["    'При каждом выполнении этого цикла выполняются [инструкции],"]
["    'после чего происходит переход на лист Склад"]
["    'и на этом листе меняется адрес текущей ячейки при переходе вниз на 1 ячейку"]
["    '(Offset(1, 0))."]
["    'Если условие выхода из цикла выполнилось, то происходит переход к инструкции,"]
["    'находящейся ниже строки с Loop."]
[]
["    Do While ActiveCell <> \"Всего к оплате\""]
["       [инструкции]"]
["    Loop"]
["    'Этот цикл повторяется (Do), пока (While) содержимое текущей ячейки (ActiveCell)"]
["    'не равно (<>) значению \"Всего к оплате\"."]
["    'Условие выхода из цикла проверяется перед каждым выполнением цикла."]
["    'При каждом выполнении этого цикла выполняются [инструкции], при выполнении которых"]
["    'может меняться адрес текущей ячейки или(и) ее содержимое."]
["    'Если условие выхода из цикла выполнилось, то происходит переход к инструкции,"]
["    'находящейся ниже строки с Loop."]
[]
["    Do While ActiveCell <> \"\""]
["       [инструкции]"]
["       Sheets(\"Склад\").Select 'Переход на лист Склад"]
["       ActiveCell.Offset(1, 0).Range(\"A1\").Select 'Переход вниз на 1 ячейку"]
["    Loop"]
["    'Этот цикл повторяется (Do), пока (While) содержимое текущей ячейки (ActiveCell)"]
["    'не равно (<>) значению \"\" (содержимому пустой ячейки)."]
["    'Условие выхода из цикла проверяется перед каждым выполнением цикла."]
["    'При каждом выполнении этого цикла выполняются [инструкции],"]
["    'после чего происходит переход на лист Склад"]
["    'и на этом листе меняется адрес текущей ячейки при переходе вниз на 1 ячейку"]
["    '(Offset(1, 0))."]
["    'Если условие выхода из цикла выполнилось, то происходит переход к инструкции,"]
["    'находящейся ниже строки с Loop."]
[]
["       Exit Do 'Выход из цикла Do...Loop"]