SlideShare uma empresa Scribd logo
1 de 43
Модуль 6.
Работа с книгами, листами и ячейками
О чем мы узнаем
Коллекция Workbooks и объект
Workbook

Коллекция Worksheets и объект
Worksheet

объект Range
Получение сслки на книгу
• Три способа получения ссылки:
 • Debug.Print Workbooks("Смета.xls").FullName
 • Debug.Print ActiveWorkbook.Name
 • Debug.Print ThisWorkbook.Name
• Создание книги:
 •   Dim oWbk As Workbook
     Set oWbk = Workbooks.Add()
• Открытие книги:
 • Dim oWbk As Workbook
     Set oWbk = WorkBooks.Open("C:mybook1.xls")
Стандартная работа с книгами
• Add() создает новую книгу и делает ее
  активной
• Close() закрывает все открытые книги
• Open() открывает указанную книгу
 • Основной параметр - имя открываемой книги
Специальные методы
коллекции Workbooks
• Только в самых простых случаях
• OpenDatabase()
 • открывает базу данных
 • выполняет запрос к ней
  • напрямую открывает таблицу или представление
 • результаты запроса помещает как
   импортированные внешние данные в новую
   автоматически созданную книгу
• OpenText() — в качестве источника выступает
  текстовый файл
• OpenXML() — то же, но с XML- файлом
Свойства коллекции Workbooks
• Count – количество открытых книг
• Item – позволяет обращаться к отдельной
  книге в коллекции
 • идентификатор - ее индекс или имя

   MsgBox "Открыто" + Str(Workbooks.Count) + _
     " книг"
   For i = 1 To Workbooks.Count
     MsgBox Workbooks.Item(i).Name + _
        " имя открытой книги №" + Str(i)
   Next i
Свойства объекта Workbook
• Name, CodeName, FullName
 • Name – имя файла книги
 • FullName – имя файла книги вместе с полным путем к
   нему
 • CodeName – как эта книга называется в коде
  • можно посмотреть в окне Project Explorer
  • открыть свойства книги в окне Properties, в строке
    (Name)
• Path – полный путь в файловой системе к книге
  Excel
Разные имена книги
MsgBox "Кодовое имя текущей книги: " + _
 ActiveWorkbook.CodeName + Chr(13) + _
 "Имя текущей книги: " + _
 ActiveWorkbook.Name + Chr(13) + _
 "Полное имя книги: " + _
 ActiveWorkbook.FullName
Свойства объекта Workbook
•
     Charts, Sheets, ActiveChart, ActiveSheet, Custo
     mViews, BuiltinDocumentProperties и
     CustomDocumentProperties, Windows, WebOp
     tions – возвращают одноименные коллекции
     соответствующих объектов
• ConflictResolution – определяет, как будут
  разрешаться конфликты изменения данных
    • SaveAs(), ExclusiveAccess()
    • MultiUserEditing
    • UserStatus
Свойства объекта Workbook
• FileFormat
• Names
  For Each Item In ThisWorkbook.Names
    Debug.Print Item.Name
  Next
Методы объекта Workbook
• Очевидные методы
  Activate(), Close(), Save(), SaveAs(), PrintOu
  t(), Protect() и Unprotect()
События объекта Workbook
Двойной щелчок на объекте ThisWorkbook
События объекта Workbook
Private Sub Workbook_SheetChange(ByVal Sh As Object, _
 ByVal Target As Range)
 MsgBox "Вы отредактировали даные на листе: " & _
   Sh.Name & ", в ячейке " & Target.Address & _
   ". Теперь ячейка содержит следующие данные: " & _
   Target.Value
End Sub
Коллекция Worksheets
• содержит листы открытой книги
• Создание листа:
• Add(Before, After, Count, Type)
 • ThisWorkbook.Worksheets.Add
 • ActiveWorkbook.Worksheets.Add _
   Count:=Val(InputBox("Введите количество
   листов"))
Создание листа
Dim oExcel As New Excel.Application 'Запускаем Excel
oExcel.Visible = True 'Делаем его видимым
Dim oWbk As Excel.Workbook
Set oWbk = oExcel.Workbooks.Add() 'Создаем новую книгу
Dim oSheet As Excel.Worksheet
Set oSheet = oWbk.Worksheets.Add() 'Создаем новый лист
oSheet.Name = "Новый лист" 'Присваиваем ему имя
Копирование листа
• В пределах книги
• ActiveWorkbook.ActiveSheet.Copy _
  After:=Worksheets("Данные")
• В новой книге
• ActiveWorkbook.ActiveSheet.Copy
Удаление и перемещение
• ActiveWorkbook.Worksheets.Item(1).Delete
• ActiveWorkbook.ActiveSheet.Move _
  Before:=Worksheets("Данные")
 • Возможен параметр After
Поиск нужного листа
Dim oExcel As New Excel.Application 'Запускаем Excel
oExcel.Visible = True 'Делаем его видимым
Dim oWbk As Excel.Workbook
Set oWbk = oExcel.Workbooks.Add() 'Создаем новую книгу
Dim oSheet As Excel.Worksheet
Set oSheet = oWbk.Worksheets.Item("Лист1") 'Находим Лист1
oSheet.Name = "Новый лист" 'Присваиваем ему имя "Новый лист"
Свойства коллекции Worksheets
• Привычные нам свойства и методы
  коллекций VBA
• Сount, Item, Add(), Delete()
• специфический метод FillAcrossSheets()
• копирование объекта Range
  (полностью, только содержимое или только
  оформление) во все листы текущей книги
Объект Worksheet
• все часто используемые методы Workheet уже
  знакомы по описаниям предыдущих объектов и
  коллекций Excel
 • Activate
 • Calculate
 • Copy, Delete, Move
 • Select
 • Scenarios
 • SetBackgroundPicture
 • PivotTables – коллекция сводных таблиц, расположенных
   на листе
 • ShowAllData показывает все содержимое рабочего листа
  • отменяет скрытие данных при фильтровании и т.д.
Методы объекта Worksheet
• Paste вставляет                'Копируем выделенную область
  содержимое буфера               'в буфер обмена
  обмена в указанную              Application.Selection.Copy
  область                         'Выделяем ячейку A3
    • Копирование в буфер         Range("A3").Select
      обмена – метод Copy         'Вставляем содержимое буфера
      объекта Range (или          ActiveSheet.Paste
      объекта Selection)          'Теперь выделяем диапазон ячеек,
                                  'в котором хранятся исходные данные
•    PasteSpecial осуществляет
                                  Range("A2:F2").Select
     специальную вставку
                                  Application.Selection.Copy
•    Protect и Unprotect –        Range("A4").Select
     защита и снятие защиты       'Вставляем значения = без формул
                                  Selection.PasteSpecial_
                                 Paste:=xlPasteValues
Свойства объекта Worksheet
• С помощью Cells можно обращаться к каждой
  конкретной ячейке по отдельности
 • ActiveSheet.Cells(1, 5) = 8
• EnableCalculation
• EnableSelection
• Next и Previous – перемещение по листам книги
• PageSetup
• Protection…
• QueryTables – таблицы запросов
Свойства объекта Worksheet
• Range – работа с ячейками и диапазонами ячеек
• ActiveSheet.Range("E1") = 4

• Dim MyCell As Variant
  For Each MyCell In ActiveSheet.Range("A1:K100")
     MyCell.Value = MyCell.Value + 1
  Next
• UsedRange – заполненные ячейки
• Visible – скрытие и отображение листов
• Type
• xlWorksheet или xlChart
События объекта Worksheet
• Практически            Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  полностью              'Для хранения пароля
  идентичны               Dim str_Pass As String
  аналогичным             str_Pass = ActiveSheet.Range("A2")
  событиям для
                          If Len(str_Pass) >= 8 Then _
  Workbook
                            ActiveSheet.Range("B2") = "Надежный пароль"
•   Самое важное
                          If Len(str_Pass) < 8 And Len(str_Pass) >= 5 Then _
    событие – Change
                            ActiveSheet.Range("B2") = _
•   BeforeRightClick и
                            "Пароль средней надежности"
    BeforeDoubleClick
                          If Len(str_Pass) < 5 Then _
                            ActiveSheet.Range("B2") = _
                            "Ненадежный пароль«
                         End Sub
Объект Range
• наиболее часто используемый объект в
  иерархии объектной модели Excel
• может представлять одну ячейку, несколько
  ячеек
 • несмежные ячейки или их наборы
 • целый лист
• www.microsoft.com/support - 22 способа
  получения объекта Range
Получение объекта Range
• 1-й способ
 • Dim oRange As Range
   Set oRange = Worksheets("Лист1").Range("A1")
 • Dim oRange As Range
   Set oRange = Worksheets("Лист1").Range("A1:D10")
• 2-й способ
 • Dim oRange As Range
   Set oRange = Worksheets("Лист1").Cells(1, 4)
 • Dim oRange
   Set oRange = Range(Cells(1, 1), Cells(5, 3))
 • Dim obj_MyCell As Range
   Set obj_MyCell = ActiveSheet.Cells(5, 5)
   obj_MyCell.Select
Как обратиться к ячейке
• По имени
• ActiveSheet.Range("A2").Select
• ActiveSheet.Range("A2:E2").Select
  ActiveSheet.Range("A2:E4").Select
• По координатам
• ActiveSheet.Cells(5,1).Select
• ActiveSheet.Range(Cells(5, 4), _
  Cells(7, 5)).Select
Как обратиться к ячейке
• С использованием переменных

  For i = 1 To 3
      For j = 1 To 3
        ActiveSheet.Cells(i, j).Select
        Application.Wait (Now + _
        TimeValue("0:00:01"))
        p=p+1
        Selection = p
      Next j
   Next i
  ActiveSheet.Range("A1:E5").Clear
Методы Range
• Activate – активация ячейки
 • Range("A1:E5").Select
 • Range("C2").Activate
• AddComment – добавляем комментарии к
  ячейкам
 •   Range("C3").AddComment ("Проверка комментария")
• AutoFit – автонастройка ширины столбцов и
  высоты строк
 •   ActiveSheet.Range("A1:E1").Columns.AutoFit
 •   ActiveSheet.Range("A:E").Columns.AutoFit
Методы Range
• Clear, ClearComments, ClearContents,
  ClearFormats – очистка и удаление
• ActiveSheet.Range("A1:E5").Clear
  Activesheet.Cells.Select
  Selection.Clear
• Copy, Cut, PasteSpecial – буфер обмена
• Delete – удалить диапазон
Merge, UnMerge –
объединение ячеек
'Заполняем область C3:L2                   'Выравниваем размер столбцов
 'случайными целыми числами                 ActiveSheet.Range("C:L").Columns.AutoFit
 For i = 1 To 10                            'Записываем название таблицы
   For j = 1 To 10                          'в ячейку верхней строчки
     ActiveSheet.Cells(i + 2, j + 2) = _    Range("C2") = "Название таблицы"
     Int(Rnd * 100)                         'Объединяем ячейки над таблицей
   Next j                                   Range("C2:L2").Merge
 Next i
Select – выделение ячейки
Dim obj_Range As Range
Dim num_Sum
'Обращаемся к каждой ячейке
'в выделенной области
For Each obj_Range In Selection.Cells
  num_Sum = num_Sum + Val(obj_Range)
Next
MsgBox ("Сумма выделенных ячеек: " & _
num_Sum)
Еще методы
•   AutoFill()                                  •    Replace()
•   AutoFormat()                                •    Show()
•   BorderAround()
                                                •    ShowDependents()
•   Consolidate()
                                                •    ShowErrors()
•   CopyFromRecordset()
                                                •    Sort()
•   DataSeries()
•   Dirty()                                     •    Speak()
•   FillDown(), FillUp(), FillLeft(), FillRig   •    SpecialCells()
    ht()
                                                    • Set oRange2 =
•   Find()                                            oRange.SpecialCells(xlCellTypeBlanks)
•   GoalSeek()                                        oRange2.Select 'Проверяем, так ли это

•   Justify()                                   • SubTotal()
•   Parse()                                     • Table()
•   PrintOut() и PrintPreview()                 • TextToColumns()
Свойства Range
• Address - адрес ячейки в формате A1
Dim num_Row
 Dim num_Col
 Dim MyRange As Range
 num_Row = Val(InputBox("Введите столбец"))
 num_Col = Val(InputBox("Введите строку"))
 Set MyRange = _
   ActiveSheet.Cells(num_Row, num_Col)
 MsgBox (MyRange.Address + _
 " - имя ячейки " & _
 " с индексами " & num_Row & " и " & num_Col)
Свойства Range
• Areas - работа с несмежными выделенными областями
 • If Selection.Areas.Count > 1 Then
       Debug.Print "Диапазон с несмежными областями"
     End If

• Characters – меняем фрагменты текста или их формат в
  ячейке, не затрагивая остальные данные
 •     чтобы ввести текст в ячейку A1 и изменить цвет первой буквы
        Dim oRange As Range
        Set oRange = Range("A1")
        oRange.Value = "Мой текст"
        oRange.Characters(1, 1).Font.Color = vbRed
Свойства Range
• Areas - работа с несмежными выделенными областями
• Borders - управление границами ячеек
• Cells, Columns, Rows - ячейки, столбцы, строки
 • num_Rows = obj_Range.Rows.Count
• Dim obj_Range As Range
  Set obj_Range = ActiveSheet.Range("B2:F7")
  For i = 1 To obj_Range.Rows.Count
    For j = 1 To obj_Range.Columns.Count
      obj_Range.Cells(i, j) = _
      Int(Rnd * 100)
    Next j
  Next i
Свойства Range
• CurrentRegion - область, заполненная данными
 • Worksheets("Лист1").Activate
   ActiveCell.CurrentRegion.Select
• Characters, Font - форматирование текста
 • Dim obj_Range As Range
   Set obj_Range = Selection
   With obj_Range
     .Font.Name = "Times New Roman"
     .Font.Size = 15
     .Font.Color = vbRed
     .Characters(1, 1).Font.Italic = True
   End With
Свойства Range
• Formula, FormulaR1C1 - формулы в ячейках
    • Range("A1").Formula = "=$A$2+$A$3"

•       Interior - внешний вид ячейки
    •    Range("A1").Interior.Color = vbRed

•       Name - работа с именованными диапазонами
•       Value - содержимое ячейки
    •    Dim obj_Cell As Range
          For Each obj_Cell In ActiveSheet.Range("A1:E8")
           If obj_Cell.Value < 0 Then
             obj_Cell.Value = Abs(obj_Cell.Value)
             obj_Cell.Interior.Color = vbCyan
           End If
          Next
Еще свойства
• End, Errors, HasFormula, Locked, Next, NumberFormat
• Offset
 • Worksheets("Лист1").Activate
   ActiveCell.Offset(rowOffset:=-3, columnOffset:=-3).Activate
• Orientation
 • oRange.Orientation = -45
• PageBreak
 • Worksheets("Лист1").Rows(50).PageBreak = xlPageBreakManual
• Resize
 • oRange.Resize(oRange.Rows.Count + 1, oRange.Columns.Count + 1).Select
• ShrinkToFit, Style, Text, Validation, WrapText
Практика: примеры кода
Изучите содержимое файлов
15_nn.xlsm
в папке …Students !
Подводим итоги
• Wokrbooks, Workbook, Worksheets и
  Worksheet имеют достаточный набор
  методов и свойств
• Вся работа с ячейками в Excel производится
  с использованием объекта Range
Вопросы?
Контрольные вопросы
• Какие методы и свойства коллекции
  Workbooks вы знаете?
• Как создать обработчики событий
  объекта Workbook?
• Как получить объект Range?
• Какие методы и свойства Range
  наиболее полезны?

Mais conteúdo relacionado

Mais procurados

AlgoCollections (RUS)
AlgoCollections (RUS)AlgoCollections (RUS)
AlgoCollections (RUS)Anton Bukov
 
Доклад Сергея Аверина на CodeFest-2013. "MySQL+HandlerSocket=NoSQL".
Доклад Сергея Аверина на CodeFest-2013. "MySQL+HandlerSocket=NoSQL".Доклад Сергея Аверина на CodeFest-2013. "MySQL+HandlerSocket=NoSQL".
Доклад Сергея Аверина на CodeFest-2013. "MySQL+HandlerSocket=NoSQL".Badoo Development
 
Влад Ковташ — Yap Database
Влад Ковташ — Yap DatabaseВлад Ковташ — Yap Database
Влад Ковташ — Yap DatabaseCocoaHeads
 
Лекция #5. Введение в язык программирования Python 3
Лекция #5. Введение в язык программирования Python 3Лекция #5. Введение в язык программирования Python 3
Лекция #5. Введение в язык программирования Python 3Яковенко Кирилл
 
Learning from Swift sources, Иван Сметанин
Learning from Swift sources, Иван СметанинLearning from Swift sources, Иван Сметанин
Learning from Swift sources, Иван СметанинMail.ru Group
 
JavaScript-библиотека
JavaScript-библиотекаJavaScript-библиотека
JavaScript-библиотекаVasya Petrov
 
использование Hibernate java persistence.part 2.
использование Hibernate java persistence.part 2.использование Hibernate java persistence.part 2.
использование Hibernate java persistence.part 2.Asya Dudnik
 
Лекция 5. Встроенные коллекции и модуль collections.
Лекция 5. Встроенные коллекции и модуль collections.Лекция 5. Встроенные коллекции и модуль collections.
Лекция 5. Встроенные коллекции и модуль collections.Roman Brovko
 
Встреча №9. Алгоритмы и коллекции стандартных библиотек C++, C#, Java, Object...
Встреча №9. Алгоритмы и коллекции стандартных библиотек C++, C#, Java, Object...Встреча №9. Алгоритмы и коллекции стандартных библиотек C++, C#, Java, Object...
Встреча №9. Алгоритмы и коллекции стандартных библиотек C++, C#, Java, Object...CocoaHeads
 
Java Core. Lecture# 4. Collections.
Java Core. Lecture# 4. Collections.Java Core. Lecture# 4. Collections.
Java Core. Lecture# 4. Collections.Anton Moiseenko
 
Коллекции в Java
Коллекции в JavaКоллекции в Java
Коллекции в Javametaform
 
Сергей Аверин, То, что вы хотели знать о HandlerSocket, но не смогли нагуглить
Сергей Аверин, То, что вы хотели знать о HandlerSocket, но не смогли нагуглитьСергей Аверин, То, что вы хотели знать о HandlerSocket, но не смогли нагуглить
Сергей Аверин, То, что вы хотели знать о HandlerSocket, но не смогли нагуглитьTanya Denisyuk
 
Курсы по мобильной разработке. 1 лекция. Знакомство с iOS
Курсы по мобильной разработке. 1 лекция. Знакомство с iOSКурсы по мобильной разработке. 1 лекция. Знакомство с iOS
Курсы по мобильной разработке. 1 лекция. Знакомство с iOSГлеб Тарасов
 
Tequila - язык для продвинутой генерации JSON
Tequila - язык для продвинутой генерации JSONTequila - язык для продвинутой генерации JSON
Tequila - язык для продвинутой генерации JSONIvan Nemytchenko
 
Магия метаклассов
Магия метаклассовМагия метаклассов
Магия метаклассовAndrey Zakharevich
 
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 2...
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 2...PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 2...
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 2...pgdayrussia
 
Очень вкусный фрукт Guava
Очень вкусный фрукт GuavaОчень вкусный фрукт Guava
Очень вкусный фрукт GuavaEgor Chernyshev
 

Mais procurados (19)

AlgoCollections (RUS)
AlgoCollections (RUS)AlgoCollections (RUS)
AlgoCollections (RUS)
 
Доклад Сергея Аверина на CodeFest-2013. "MySQL+HandlerSocket=NoSQL".
Доклад Сергея Аверина на CodeFest-2013. "MySQL+HandlerSocket=NoSQL".Доклад Сергея Аверина на CodeFest-2013. "MySQL+HandlerSocket=NoSQL".
Доклад Сергея Аверина на CodeFest-2013. "MySQL+HandlerSocket=NoSQL".
 
Влад Ковташ — Yap Database
Влад Ковташ — Yap DatabaseВлад Ковташ — Yap Database
Влад Ковташ — Yap Database
 
Vba 05
Vba 05Vba 05
Vba 05
 
Лекция #5. Введение в язык программирования Python 3
Лекция #5. Введение в язык программирования Python 3Лекция #5. Введение в язык программирования Python 3
Лекция #5. Введение в язык программирования Python 3
 
Learning from Swift sources, Иван Сметанин
Learning from Swift sources, Иван СметанинLearning from Swift sources, Иван Сметанин
Learning from Swift sources, Иван Сметанин
 
JavaScript-библиотека
JavaScript-библиотекаJavaScript-библиотека
JavaScript-библиотека
 
использование Hibernate java persistence.part 2.
использование Hibernate java persistence.part 2.использование Hibernate java persistence.part 2.
использование Hibernate java persistence.part 2.
 
Лекция 5. Встроенные коллекции и модуль collections.
Лекция 5. Встроенные коллекции и модуль collections.Лекция 5. Встроенные коллекции и модуль collections.
Лекция 5. Встроенные коллекции и модуль collections.
 
Встреча №9. Алгоритмы и коллекции стандартных библиотек C++, C#, Java, Object...
Встреча №9. Алгоритмы и коллекции стандартных библиотек C++, C#, Java, Object...Встреча №9. Алгоритмы и коллекции стандартных библиотек C++, C#, Java, Object...
Встреча №9. Алгоритмы и коллекции стандартных библиотек C++, C#, Java, Object...
 
Java Core. Lecture# 4. Collections.
Java Core. Lecture# 4. Collections.Java Core. Lecture# 4. Collections.
Java Core. Lecture# 4. Collections.
 
Коллекции в Java
Коллекции в JavaКоллекции в Java
Коллекции в Java
 
Сергей Аверин, То, что вы хотели знать о HandlerSocket, но не смогли нагуглить
Сергей Аверин, То, что вы хотели знать о HandlerSocket, но не смогли нагуглитьСергей Аверин, То, что вы хотели знать о HandlerSocket, но не смогли нагуглить
Сергей Аверин, То, что вы хотели знать о HandlerSocket, но не смогли нагуглить
 
Курсы по мобильной разработке. 1 лекция. Знакомство с iOS
Курсы по мобильной разработке. 1 лекция. Знакомство с iOSКурсы по мобильной разработке. 1 лекция. Знакомство с iOS
Курсы по мобильной разработке. 1 лекция. Знакомство с iOS
 
Лекция #7. Django ORM
Лекция #7. Django ORMЛекция #7. Django ORM
Лекция #7. Django ORM
 
Tequila - язык для продвинутой генерации JSON
Tequila - язык для продвинутой генерации JSONTequila - язык для продвинутой генерации JSON
Tequila - язык для продвинутой генерации JSON
 
Магия метаклассов
Магия метаклассовМагия метаклассов
Магия метаклассов
 
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 2...
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 2...PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 2...
PG Day'14 Russia, PostgreSQL как платформа для разработки приложений, часть 2...
 
Очень вкусный фрукт Guava
Очень вкусный фрукт GuavaОчень вкусный фрукт Guava
Очень вкусный фрукт Guava
 

Destaque

Destaque (19)

Surgical technicians certification
Surgical technicians certification Surgical technicians certification
Surgical technicians certification
 
Papel aceita tudo? - parte 2
Papel aceita tudo? - parte 2Papel aceita tudo? - parte 2
Papel aceita tudo? - parte 2
 
Certificate
CertificateCertificate
Certificate
 
Internet de las cosas
Internet de las cosasInternet de las cosas
Internet de las cosas
 
Notas 0003
Notas 0003Notas 0003
Notas 0003
 
Final Paper Revision
Final Paper RevisionFinal Paper Revision
Final Paper Revision
 
What should you know about Resco CRM
What should you know about Resco CRMWhat should you know about Resco CRM
What should you know about Resco CRM
 
Presentation 12
Presentation 12Presentation 12
Presentation 12
 
silabo
silabosilabo
silabo
 
Temp3
Temp3Temp3
Temp3
 
DeepakItkar_Resume_ITAM
DeepakItkar_Resume_ITAMDeepakItkar_Resume_ITAM
DeepakItkar_Resume_ITAM
 
Taller 8
Taller 8Taller 8
Taller 8
 
TCCC - Tactial Combat Casualty Care
TCCC - Tactial Combat Casualty CareTCCC - Tactial Combat Casualty Care
TCCC - Tactial Combat Casualty Care
 
iFixit's Plan to Train the World - Dozuki Workshop Series
iFixit's Plan to Train the World - Dozuki Workshop SeriesiFixit's Plan to Train the World - Dozuki Workshop Series
iFixit's Plan to Train the World - Dozuki Workshop Series
 
Beautiful Parrot
Beautiful ParrotBeautiful Parrot
Beautiful Parrot
 
SCHISTONOMA MANSONI
SCHISTONOMA MANSONISCHISTONOMA MANSONI
SCHISTONOMA MANSONI
 
Integrating Hardware (Waterfall) and Software (Agile) Development
Integrating Hardware (Waterfall) and Software (Agile) DevelopmentIntegrating Hardware (Waterfall) and Software (Agile) Development
Integrating Hardware (Waterfall) and Software (Agile) Development
 
5 Top Weight Loss Tips for Weekend Cravings
5 Top Weight Loss Tips for Weekend Cravings5 Top Weight Loss Tips for Weekend Cravings
5 Top Weight Loss Tips for Weekend Cravings
 
muamalah 2 hadits ahkam
muamalah 2 hadits ahkammuamalah 2 hadits ahkam
muamalah 2 hadits ahkam
 

Semelhante a Vba 06

объекты и классы
объекты и классыобъекты и классы
объекты и классыLidiKashka
 
объекты Excel
объекты Excelобъекты Excel
объекты ExcelLidiKashka
 
MongoDB - About Performance Optimization, Ivan Griga - Smart Gamma
MongoDB - About Performance Optimization, Ivan Griga - Smart GammaMongoDB - About Performance Optimization, Ivan Griga - Smart Gamma
MongoDB - About Performance Optimization, Ivan Griga - Smart GammaEvgeniy Kuzmin
 
Алгоритмы и структуры данных весна 2014 лекция 2
Алгоритмы и структуры данных весна 2014 лекция 2Алгоритмы и структуры данных весна 2014 лекция 2
Алгоритмы и структуры данных весна 2014 лекция 2Technopark
 
VBA Excel создание табеля успеваемости
VBA Excel создание табеля успеваемостиVBA Excel создание табеля успеваемости
VBA Excel создание табеля успеваемостиIlya Batozsky
 
Алгоритмы и структуры данных осень 2013 лекция 2
Алгоритмы и структуры данных осень 2013 лекция 2Алгоритмы и структуры данных осень 2013 лекция 2
Алгоритмы и структуры данных осень 2013 лекция 2Technopark
 
Объектно-ориентированное программирование. Лекции 9 и 10
Объектно-ориентированное программирование. Лекции 9 и 10Объектно-ориентированное программирование. Лекции 9 и 10
Объектно-ориентированное программирование. Лекции 9 и 10Dima Dzuba
 
Дополнительные возможности Javascript
Дополнительные возможности JavascriptДополнительные возможности Javascript
Дополнительные возможности JavascriptDenis Latushkin
 
Multimodel Database Caché
Multimodel Database CachéMultimodel Database Caché
Multimodel Database CachéTimur Safin
 
Взаимодействие с источниками данных в GLPK
Взаимодействие с источниками данных в GLPKВзаимодействие с источниками данных в GLPK
Взаимодействие с источниками данных в GLPKGleb Zakhodiakin
 
ОПК № 5 – Составные типы данных, списки
ОПК № 5 – Составные типы данных, спискиОПК № 5 – Составные типы данных, списки
ОПК № 5 – Составные типы данных, спискиVladimir Parfinenko
 
Spreadsheets - что нужно знать QA-менеджеру
Spreadsheets -  что нужно знать QA-менеджеруSpreadsheets -  что нужно знать QA-менеджеру
Spreadsheets - что нужно знать QA-менеджеруDzmitry Yashyn
 
OOP in JavaScript - Presentation by Eugene Kalosha
OOP in JavaScript - Presentation by Eugene KaloshaOOP in JavaScript - Presentation by Eugene Kalosha
OOP in JavaScript - Presentation by Eugene KaloshaRostyslav Siryk
 
Зачем нужна Scala?
Зачем нужна Scala?Зачем нужна Scala?
Зачем нужна Scala?Vasil Remeniuk
 

Semelhante a Vba 06 (20)

объекты и классы
объекты и классыобъекты и классы
объекты и классы
 
Scala для всех (РИФ 2015)
Scala для всех (РИФ 2015)Scala для всех (РИФ 2015)
Scala для всех (РИФ 2015)
 
Javascript 1
Javascript 1Javascript 1
Javascript 1
 
объекты Excel
объекты Excelобъекты Excel
объекты Excel
 
Underscore js
Underscore jsUnderscore js
Underscore js
 
MongoDB - About Performance Optimization, Ivan Griga - Smart Gamma
MongoDB - About Performance Optimization, Ivan Griga - Smart GammaMongoDB - About Performance Optimization, Ivan Griga - Smart Gamma
MongoDB - About Performance Optimization, Ivan Griga - Smart Gamma
 
Алгоритмы и структуры данных весна 2014 лекция 2
Алгоритмы и структуры данных весна 2014 лекция 2Алгоритмы и структуры данных весна 2014 лекция 2
Алгоритмы и структуры данных весна 2014 лекция 2
 
VBA Excel создание табеля успеваемости
VBA Excel создание табеля успеваемостиVBA Excel создание табеля успеваемости
VBA Excel создание табеля успеваемости
 
Алгоритмы и структуры данных осень 2013 лекция 2
Алгоритмы и структуры данных осень 2013 лекция 2Алгоритмы и структуры данных осень 2013 лекция 2
Алгоритмы и структуры данных осень 2013 лекция 2
 
Объектно-ориентированное программирование. Лекции 9 и 10
Объектно-ориентированное программирование. Лекции 9 и 10Объектно-ориентированное программирование. Лекции 9 и 10
Объектно-ориентированное программирование. Лекции 9 и 10
 
Дополнительные возможности Javascript
Дополнительные возможности JavascriptДополнительные возможности Javascript
Дополнительные возможности Javascript
 
Multimodel Database Caché
Multimodel Database CachéMultimodel Database Caché
Multimodel Database Caché
 
Взаимодействие с источниками данных в GLPK
Взаимодействие с источниками данных в GLPKВзаимодействие с источниками данных в GLPK
Взаимодействие с источниками данных в GLPK
 
Excel in Javascript
Excel in JavascriptExcel in Javascript
Excel in Javascript
 
ОПК № 5 – Составные типы данных, списки
ОПК № 5 – Составные типы данных, спискиОПК № 5 – Составные типы данных, списки
ОПК № 5 – Составные типы данных, списки
 
Spreadsheets - что нужно знать QA-менеджеру
Spreadsheets -  что нужно знать QA-менеджеруSpreadsheets -  что нужно знать QA-менеджеру
Spreadsheets - что нужно знать QA-менеджеру
 
Lec 4
Lec 4Lec 4
Lec 4
 
OOP in JavaScript - Presentation by Eugene Kalosha
OOP in JavaScript - Presentation by Eugene KaloshaOOP in JavaScript - Presentation by Eugene Kalosha
OOP in JavaScript - Presentation by Eugene Kalosha
 
Stat 3 alpha
Stat 3 alphaStat 3 alpha
Stat 3 alpha
 
Зачем нужна Scala?
Зачем нужна Scala?Зачем нужна Scala?
Зачем нужна Scala?
 

Mais de Alexander Babich

Актуальні курси з мого арсеналу (Бабич О.В.)
Актуальні курси з мого арсеналу (Бабич О.В.)Актуальні курси з мого арсеналу (Бабич О.В.)
Актуальні курси з мого арсеналу (Бабич О.В.)Alexander Babich
 
M365: Word, Excel, PowerPoint...
M365: Word, Excel, PowerPoint...M365: Word, Excel, PowerPoint...
M365: Word, Excel, PowerPoint...Alexander Babich
 
M365: Інші сервіси та застосунки
M365: Інші сервіси та застосункиM365: Інші сервіси та застосунки
M365: Інші сервіси та застосункиAlexander Babich
 
M365: Завершення
M365: ЗавершенняM365: Завершення
M365: ЗавершенняAlexander Babich
 
M365: рекомендації
M365: рекомендаціїM365: рекомендації
M365: рекомендаціїAlexander Babich
 
M365: Огляд платформи Microsoft365
M365: Огляд платформи Microsoft365M365: Огляд платформи Microsoft365
M365: Огляд платформи Microsoft365Alexander Babich
 
M365: Роздаткові матеріали
M365: Роздаткові матеріалиM365: Роздаткові матеріали
M365: Роздаткові матеріалиAlexander Babich
 
Meet&Code - VR, метавсесвіт та криптовалюти (1).pptx
Meet&Code - VR, метавсесвіт та криптовалюти (1).pptxMeet&Code - VR, метавсесвіт та криптовалюти (1).pptx
Meet&Code - VR, метавсесвіт та криптовалюти (1).pptxAlexander Babich
 
Ви обрали професію програміста
Ви обрали професію програмістаВи обрали професію програміста
Ви обрали професію програмістаAlexander Babich
 
Змішане навчання в ППФК
Змішане навчання в ППФКЗмішане навчання в ППФК
Змішане навчання в ППФКAlexander Babich
 
Формування професійних інтересів студентів
Формування професійних інтересів студентівФормування професійних інтересів студентів
Формування професійних інтересів студентівAlexander Babich
 
День відкритих дверей' 2021
День відкритих дверей' 2021День відкритих дверей' 2021
День відкритих дверей' 2021Alexander Babich
 
06. Обучение и сертификация по Azure
06. Обучение и сертификация по Azure06. Обучение и сертификация по Azure
06. Обучение и сертификация по AzureAlexander Babich
 
05.Внедрение Azure
05.Внедрение Azure05.Внедрение Azure
05.Внедрение AzureAlexander Babich
 
04.Службы Azure - подробнее
04.Службы Azure - подробнее04.Службы Azure - подробнее
04.Службы Azure - подробнееAlexander Babich
 
03.Сколько стоит облако
03.Сколько стоит облако03.Сколько стоит облако
03.Сколько стоит облакоAlexander Babich
 

Mais de Alexander Babich (20)

Актуальні курси з мого арсеналу (Бабич О.В.)
Актуальні курси з мого арсеналу (Бабич О.В.)Актуальні курси з мого арсеналу (Бабич О.В.)
Актуальні курси з мого арсеналу (Бабич О.В.)
 
M365: Word, Excel, PowerPoint...
M365: Word, Excel, PowerPoint...M365: Word, Excel, PowerPoint...
M365: Word, Excel, PowerPoint...
 
M365: Інші сервіси та застосунки
M365: Інші сервіси та застосункиM365: Інші сервіси та застосунки
M365: Інші сервіси та застосунки
 
M365: OneDrive
M365: OneDriveM365: OneDrive
M365: OneDrive
 
M365: Завершення
M365: ЗавершенняM365: Завершення
M365: Завершення
 
M365: SharePoint
M365: SharePointM365: SharePoint
M365: SharePoint
 
M365: рекомендації
M365: рекомендаціїM365: рекомендації
M365: рекомендації
 
M365: Огляд платформи Microsoft365
M365: Огляд платформи Microsoft365M365: Огляд платформи Microsoft365
M365: Огляд платформи Microsoft365
 
M365: Вступ
M365: ВступM365: Вступ
M365: Вступ
 
M365: Роздаткові матеріали
M365: Роздаткові матеріалиM365: Роздаткові матеріали
M365: Роздаткові матеріали
 
Meet&Code - VR, метавсесвіт та криптовалюти (1).pptx
Meet&Code - VR, метавсесвіт та криптовалюти (1).pptxMeet&Code - VR, метавсесвіт та криптовалюти (1).pptx
Meet&Code - VR, метавсесвіт та криптовалюти (1).pptx
 
Ви обрали професію програміста
Ви обрали професію програмістаВи обрали професію програміста
Ви обрали професію програміста
 
Змішане навчання в ППФК
Змішане навчання в ППФКЗмішане навчання в ППФК
Змішане навчання в ППФК
 
Формування професійних інтересів студентів
Формування професійних інтересів студентівФормування професійних інтересів студентів
Формування професійних інтересів студентів
 
День відкритих дверей' 2021
День відкритих дверей' 2021День відкритих дверей' 2021
День відкритих дверей' 2021
 
Спробуйте Python
Спробуйте PythonСпробуйте Python
Спробуйте Python
 
06. Обучение и сертификация по Azure
06. Обучение и сертификация по Azure06. Обучение и сертификация по Azure
06. Обучение и сертификация по Azure
 
05.Внедрение Azure
05.Внедрение Azure05.Внедрение Azure
05.Внедрение Azure
 
04.Службы Azure - подробнее
04.Службы Azure - подробнее04.Службы Azure - подробнее
04.Службы Azure - подробнее
 
03.Сколько стоит облако
03.Сколько стоит облако03.Сколько стоит облако
03.Сколько стоит облако
 

Vba 06

  • 1. Модуль 6. Работа с книгами, листами и ячейками
  • 2. О чем мы узнаем Коллекция Workbooks и объект Workbook Коллекция Worksheets и объект Worksheet объект Range
  • 3. Получение сслки на книгу • Три способа получения ссылки: • Debug.Print Workbooks("Смета.xls").FullName • Debug.Print ActiveWorkbook.Name • Debug.Print ThisWorkbook.Name • Создание книги: • Dim oWbk As Workbook Set oWbk = Workbooks.Add() • Открытие книги: • Dim oWbk As Workbook Set oWbk = WorkBooks.Open("C:mybook1.xls")
  • 4. Стандартная работа с книгами • Add() создает новую книгу и делает ее активной • Close() закрывает все открытые книги • Open() открывает указанную книгу • Основной параметр - имя открываемой книги
  • 5. Специальные методы коллекции Workbooks • Только в самых простых случаях • OpenDatabase() • открывает базу данных • выполняет запрос к ней • напрямую открывает таблицу или представление • результаты запроса помещает как импортированные внешние данные в новую автоматически созданную книгу • OpenText() — в качестве источника выступает текстовый файл • OpenXML() — то же, но с XML- файлом
  • 6. Свойства коллекции Workbooks • Count – количество открытых книг • Item – позволяет обращаться к отдельной книге в коллекции • идентификатор - ее индекс или имя MsgBox "Открыто" + Str(Workbooks.Count) + _ " книг" For i = 1 To Workbooks.Count MsgBox Workbooks.Item(i).Name + _ " имя открытой книги №" + Str(i) Next i
  • 7. Свойства объекта Workbook • Name, CodeName, FullName • Name – имя файла книги • FullName – имя файла книги вместе с полным путем к нему • CodeName – как эта книга называется в коде • можно посмотреть в окне Project Explorer • открыть свойства книги в окне Properties, в строке (Name) • Path – полный путь в файловой системе к книге Excel
  • 8. Разные имена книги MsgBox "Кодовое имя текущей книги: " + _ ActiveWorkbook.CodeName + Chr(13) + _ "Имя текущей книги: " + _ ActiveWorkbook.Name + Chr(13) + _ "Полное имя книги: " + _ ActiveWorkbook.FullName
  • 9. Свойства объекта Workbook • Charts, Sheets, ActiveChart, ActiveSheet, Custo mViews, BuiltinDocumentProperties и CustomDocumentProperties, Windows, WebOp tions – возвращают одноименные коллекции соответствующих объектов • ConflictResolution – определяет, как будут разрешаться конфликты изменения данных • SaveAs(), ExclusiveAccess() • MultiUserEditing • UserStatus
  • 10. Свойства объекта Workbook • FileFormat • Names For Each Item In ThisWorkbook.Names Debug.Print Item.Name Next
  • 11. Методы объекта Workbook • Очевидные методы Activate(), Close(), Save(), SaveAs(), PrintOu t(), Protect() и Unprotect()
  • 12. События объекта Workbook Двойной щелчок на объекте ThisWorkbook
  • 13. События объекта Workbook Private Sub Workbook_SheetChange(ByVal Sh As Object, _ ByVal Target As Range) MsgBox "Вы отредактировали даные на листе: " & _ Sh.Name & ", в ячейке " & Target.Address & _ ". Теперь ячейка содержит следующие данные: " & _ Target.Value End Sub
  • 14. Коллекция Worksheets • содержит листы открытой книги • Создание листа: • Add(Before, After, Count, Type) • ThisWorkbook.Worksheets.Add • ActiveWorkbook.Worksheets.Add _ Count:=Val(InputBox("Введите количество листов"))
  • 15. Создание листа Dim oExcel As New Excel.Application 'Запускаем Excel oExcel.Visible = True 'Делаем его видимым Dim oWbk As Excel.Workbook Set oWbk = oExcel.Workbooks.Add() 'Создаем новую книгу Dim oSheet As Excel.Worksheet Set oSheet = oWbk.Worksheets.Add() 'Создаем новый лист oSheet.Name = "Новый лист" 'Присваиваем ему имя
  • 16. Копирование листа • В пределах книги • ActiveWorkbook.ActiveSheet.Copy _ After:=Worksheets("Данные") • В новой книге • ActiveWorkbook.ActiveSheet.Copy
  • 17. Удаление и перемещение • ActiveWorkbook.Worksheets.Item(1).Delete • ActiveWorkbook.ActiveSheet.Move _ Before:=Worksheets("Данные") • Возможен параметр After
  • 18. Поиск нужного листа Dim oExcel As New Excel.Application 'Запускаем Excel oExcel.Visible = True 'Делаем его видимым Dim oWbk As Excel.Workbook Set oWbk = oExcel.Workbooks.Add() 'Создаем новую книгу Dim oSheet As Excel.Worksheet Set oSheet = oWbk.Worksheets.Item("Лист1") 'Находим Лист1 oSheet.Name = "Новый лист" 'Присваиваем ему имя "Новый лист"
  • 19. Свойства коллекции Worksheets • Привычные нам свойства и методы коллекций VBA • Сount, Item, Add(), Delete() • специфический метод FillAcrossSheets() • копирование объекта Range (полностью, только содержимое или только оформление) во все листы текущей книги
  • 20. Объект Worksheet • все часто используемые методы Workheet уже знакомы по описаниям предыдущих объектов и коллекций Excel • Activate • Calculate • Copy, Delete, Move • Select • Scenarios • SetBackgroundPicture • PivotTables – коллекция сводных таблиц, расположенных на листе • ShowAllData показывает все содержимое рабочего листа • отменяет скрытие данных при фильтровании и т.д.
  • 21. Методы объекта Worksheet • Paste вставляет 'Копируем выделенную область содержимое буфера 'в буфер обмена обмена в указанную Application.Selection.Copy область 'Выделяем ячейку A3 • Копирование в буфер Range("A3").Select обмена – метод Copy 'Вставляем содержимое буфера объекта Range (или ActiveSheet.Paste объекта Selection) 'Теперь выделяем диапазон ячеек, 'в котором хранятся исходные данные • PasteSpecial осуществляет Range("A2:F2").Select специальную вставку Application.Selection.Copy • Protect и Unprotect – Range("A4").Select защита и снятие защиты 'Вставляем значения = без формул Selection.PasteSpecial_ Paste:=xlPasteValues
  • 22. Свойства объекта Worksheet • С помощью Cells можно обращаться к каждой конкретной ячейке по отдельности • ActiveSheet.Cells(1, 5) = 8 • EnableCalculation • EnableSelection • Next и Previous – перемещение по листам книги • PageSetup • Protection… • QueryTables – таблицы запросов
  • 23. Свойства объекта Worksheet • Range – работа с ячейками и диапазонами ячеек • ActiveSheet.Range("E1") = 4 • Dim MyCell As Variant For Each MyCell In ActiveSheet.Range("A1:K100") MyCell.Value = MyCell.Value + 1 Next • UsedRange – заполненные ячейки • Visible – скрытие и отображение листов • Type • xlWorksheet или xlChart
  • 24. События объекта Worksheet • Практически Private Sub Worksheet_SelectionChange(ByVal Target As Range) полностью 'Для хранения пароля идентичны Dim str_Pass As String аналогичным str_Pass = ActiveSheet.Range("A2") событиям для If Len(str_Pass) >= 8 Then _ Workbook ActiveSheet.Range("B2") = "Надежный пароль" • Самое важное If Len(str_Pass) < 8 And Len(str_Pass) >= 5 Then _ событие – Change ActiveSheet.Range("B2") = _ • BeforeRightClick и "Пароль средней надежности" BeforeDoubleClick If Len(str_Pass) < 5 Then _ ActiveSheet.Range("B2") = _ "Ненадежный пароль« End Sub
  • 25. Объект Range • наиболее часто используемый объект в иерархии объектной модели Excel • может представлять одну ячейку, несколько ячеек • несмежные ячейки или их наборы • целый лист • www.microsoft.com/support - 22 способа получения объекта Range
  • 26. Получение объекта Range • 1-й способ • Dim oRange As Range Set oRange = Worksheets("Лист1").Range("A1") • Dim oRange As Range Set oRange = Worksheets("Лист1").Range("A1:D10") • 2-й способ • Dim oRange As Range Set oRange = Worksheets("Лист1").Cells(1, 4) • Dim oRange Set oRange = Range(Cells(1, 1), Cells(5, 3)) • Dim obj_MyCell As Range Set obj_MyCell = ActiveSheet.Cells(5, 5) obj_MyCell.Select
  • 27. Как обратиться к ячейке • По имени • ActiveSheet.Range("A2").Select • ActiveSheet.Range("A2:E2").Select ActiveSheet.Range("A2:E4").Select • По координатам • ActiveSheet.Cells(5,1).Select • ActiveSheet.Range(Cells(5, 4), _ Cells(7, 5)).Select
  • 28. Как обратиться к ячейке • С использованием переменных For i = 1 To 3 For j = 1 To 3 ActiveSheet.Cells(i, j).Select Application.Wait (Now + _ TimeValue("0:00:01")) p=p+1 Selection = p Next j Next i ActiveSheet.Range("A1:E5").Clear
  • 29. Методы Range • Activate – активация ячейки • Range("A1:E5").Select • Range("C2").Activate • AddComment – добавляем комментарии к ячейкам • Range("C3").AddComment ("Проверка комментария") • AutoFit – автонастройка ширины столбцов и высоты строк • ActiveSheet.Range("A1:E1").Columns.AutoFit • ActiveSheet.Range("A:E").Columns.AutoFit
  • 30. Методы Range • Clear, ClearComments, ClearContents, ClearFormats – очистка и удаление • ActiveSheet.Range("A1:E5").Clear Activesheet.Cells.Select Selection.Clear • Copy, Cut, PasteSpecial – буфер обмена • Delete – удалить диапазон
  • 31. Merge, UnMerge – объединение ячеек 'Заполняем область C3:L2 'Выравниваем размер столбцов 'случайными целыми числами ActiveSheet.Range("C:L").Columns.AutoFit For i = 1 To 10 'Записываем название таблицы For j = 1 To 10 'в ячейку верхней строчки ActiveSheet.Cells(i + 2, j + 2) = _ Range("C2") = "Название таблицы" Int(Rnd * 100) 'Объединяем ячейки над таблицей Next j Range("C2:L2").Merge Next i
  • 32. Select – выделение ячейки Dim obj_Range As Range Dim num_Sum 'Обращаемся к каждой ячейке 'в выделенной области For Each obj_Range In Selection.Cells num_Sum = num_Sum + Val(obj_Range) Next MsgBox ("Сумма выделенных ячеек: " & _ num_Sum)
  • 33. Еще методы • AutoFill() • Replace() • AutoFormat() • Show() • BorderAround() • ShowDependents() • Consolidate() • ShowErrors() • CopyFromRecordset() • Sort() • DataSeries() • Dirty() • Speak() • FillDown(), FillUp(), FillLeft(), FillRig • SpecialCells() ht() • Set oRange2 = • Find() oRange.SpecialCells(xlCellTypeBlanks) • GoalSeek() oRange2.Select 'Проверяем, так ли это • Justify() • SubTotal() • Parse() • Table() • PrintOut() и PrintPreview() • TextToColumns()
  • 34. Свойства Range • Address - адрес ячейки в формате A1 Dim num_Row Dim num_Col Dim MyRange As Range num_Row = Val(InputBox("Введите столбец")) num_Col = Val(InputBox("Введите строку")) Set MyRange = _ ActiveSheet.Cells(num_Row, num_Col) MsgBox (MyRange.Address + _ " - имя ячейки " & _ " с индексами " & num_Row & " и " & num_Col)
  • 35. Свойства Range • Areas - работа с несмежными выделенными областями • If Selection.Areas.Count > 1 Then Debug.Print "Диапазон с несмежными областями" End If • Characters – меняем фрагменты текста или их формат в ячейке, не затрагивая остальные данные • чтобы ввести текст в ячейку A1 и изменить цвет первой буквы Dim oRange As Range Set oRange = Range("A1") oRange.Value = "Мой текст" oRange.Characters(1, 1).Font.Color = vbRed
  • 36. Свойства Range • Areas - работа с несмежными выделенными областями • Borders - управление границами ячеек • Cells, Columns, Rows - ячейки, столбцы, строки • num_Rows = obj_Range.Rows.Count • Dim obj_Range As Range Set obj_Range = ActiveSheet.Range("B2:F7") For i = 1 To obj_Range.Rows.Count For j = 1 To obj_Range.Columns.Count obj_Range.Cells(i, j) = _ Int(Rnd * 100) Next j Next i
  • 37. Свойства Range • CurrentRegion - область, заполненная данными • Worksheets("Лист1").Activate ActiveCell.CurrentRegion.Select • Characters, Font - форматирование текста • Dim obj_Range As Range Set obj_Range = Selection With obj_Range .Font.Name = "Times New Roman" .Font.Size = 15 .Font.Color = vbRed .Characters(1, 1).Font.Italic = True End With
  • 38. Свойства Range • Formula, FormulaR1C1 - формулы в ячейках • Range("A1").Formula = "=$A$2+$A$3" • Interior - внешний вид ячейки • Range("A1").Interior.Color = vbRed • Name - работа с именованными диапазонами • Value - содержимое ячейки • Dim obj_Cell As Range For Each obj_Cell In ActiveSheet.Range("A1:E8") If obj_Cell.Value < 0 Then obj_Cell.Value = Abs(obj_Cell.Value) obj_Cell.Interior.Color = vbCyan End If Next
  • 39. Еще свойства • End, Errors, HasFormula, Locked, Next, NumberFormat • Offset • Worksheets("Лист1").Activate ActiveCell.Offset(rowOffset:=-3, columnOffset:=-3).Activate • Orientation • oRange.Orientation = -45 • PageBreak • Worksheets("Лист1").Rows(50).PageBreak = xlPageBreakManual • Resize • oRange.Resize(oRange.Rows.Count + 1, oRange.Columns.Count + 1).Select • ShrinkToFit, Style, Text, Validation, WrapText
  • 40. Практика: примеры кода Изучите содержимое файлов 15_nn.xlsm в папке …Students !
  • 41. Подводим итоги • Wokrbooks, Workbook, Worksheets и Worksheet имеют достаточный набор методов и свойств • Вся работа с ячейками в Excel производится с использованием объекта Range
  • 43. Контрольные вопросы • Какие методы и свойства коллекции Workbooks вы знаете? • Как создать обработчики событий объекта Workbook? • Как получить объект Range? • Какие методы и свойства Range наиболее полезны?