SlideShare a Scribd company logo
Модуль 7.
Отдельные аспекты программировании в Excel
О чем мы узнаем

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

Работа с документами MS Word из Excel

Обращение к базам данных

Создание и настройка диаграмм
Английский или русский Excel?
• Проблемы в локализованных версиях
• В ячейках – локализованные функции
 • =сумм(A1:A10)
• Программно – оригинальные
 • Range("B1").Formula = "=sum(A1:A10)"
Формулы в ячейках
• объект Application.WorksheetFunction
 • более 250 функций рабочего листа
  • Dim num_F As Integer
    num_F = InputBox("Введите число")
    MsgBox ("Факториал числа " & num_F & " равен " & _
      WorksheetFunction.Fact(num_F))
• объекты Range, как аргументы функций
• все расчеты - в VBA, а на лист - лишь готовые
  значения
Работа с MS Word из MS Excel
• подключение соотв. объектной модели через Tools |
  Reference
 • Возможность работать с объектами Word
  • Dim obj_Word As Word.Application
    Dim obj_WDoc As Word.Document
    …
    Set obj_Word = New Word.Application
    obj_Word.Visible = True
    Set obj_WDoc = obj_Word.Documents.Add




                                                      16_02.xlsm
    obj_WDoc.Activate
    …
    obj_Word.Selection.TypeText (str_Str)
    obj_Word.Selection.TypeParagraph
Работа с MS Excel из MS Word
• Полностью аналогично




                               VBA_16.1.pdf
Работа с БД
• Нужно иметь БД
• Database.accdb в корне диска D
• различные инструменты
• Метод OpenDatabase рабочего листа
• Коллекция QueryTables и объект
  QueryTable (ADO)
Метод OpenDatabase
• OpenDatabase(Filename, CommandText, Command
  Type, BackgroundQuery, ImportDataAs)
 • Filename - имя БД
 • CommandText - Текст запроса.
 • CommandType - тип запроса
 •     xlCmdCube (куб), xlCmdList (список), xlCmdSql
    (SQL), xlCmdTable (таблица).
 • BackgroundQuery - фоновая обработка данных или
    обычная
 • ImportDataAs - способ импорта
   • xlPivotTableReport
   • xlQueryTable
Метод OpenDatabase
Workbooks.OpenDatabase _
Filename:="D:Database.accdb", _
   CommandText:="Покупки", _
   CommandType:=xlCmdTable, _
   BackgroundQuery:=True, _
   ImportDataAs:=xlQueryTable      Workbooks.OpenDatabase _
                                   Filename:="C:Database.accdb", _
                                      CommandText:="Покупки", _
                                      CommandType:=xlCmdTable, _
                                      BackgroundQuery:=True, _
                                      ImportDataAs:=xlPivotTableReport
ADO
• Коллекция QueryTables объектов QueryTable
• Метод Add
• WorkBook.QueryTables.Add(Connection, Destination)
• Параметр Connection
• объект ADODB.Recordset
• Destination – объект Range, который указывает
  на диапазон,куда будет добавлена QueryTable
 • левая верхняя ячейка вставляемой таблицы
   таблицы
ADO
• объектная модель ADO
• Tools | References, Microsoft ActiveX Data
  Object x.x Library
• Объект ADODB
 • Объект ADODB.Connection
  • свойствоConnectionString
  • метод Open
 • объект ADODB.RecordSet
 • метод Open
Пример

Dim obj_Query As QueryTable                 Set obj_ADORec = New ADODB.Recordset
Dim obj_ADOConn As ADODB.Connection         obj_ADORec.Open _
Dim obj_ADORec As ADODB.Recordset              Source:="SELECT * FROM Покупки", _
                                                ActiveConnection:=obj_ADOConn Set
                                            obj_Query = _
Set obj_ADOConn = New ADODB.Connection
                                               ActiveSheet.QueryTables.Add _
obj_ADOConn.ConnectionString = _
                                               (obj_ADORec, Range("A5"))
 "Provider=Microsoft.ACE.OLEDB.12.0;" & _
                                            obj_Query.Refresh
   "Data Source=C:Database.accdb«
obj_ADOConn.Open
Советы
• Необходимо знание SQL
• Есть специфика строк
  подключения и особенности
  работаы с каждой БД


http://connectionstrings.com
Работа с диаграммами
• Объект Chart
 • Для добавления диаграммы - метод
   AddChart коллекции Shapes
  • ActiveSheet.Shapes.AddChart
 • метод SetSourceData
 • свойство CharType
  • более 70 значений типа xlChartType
Пример
'Для хранения ссылки            ActiveSheet.Shapes.AddChart.Select
 'на диаграмму                   Set obj_Chart = ActiveChart
 Dim obj_Chart As Chart         'Настраиваем исходные данные
 'Для хранения ссылки на         'для диаграммы
 'диапазон входных значений      obj_Chart.SetSourceData _
 Dim obj_Range As Range            Source:=obj_Range, _
 Set obj_Range = Selection         PlotBy:=xlRows
 'Добавляем новую диаграмму и    'Устанавливаем тип для диаграммы
 'тут же выделяем ее             obj_Chart.ChartType = xlLine




                                                             16_06.xlsm
Практика: примеры кода
Изучите содержимое файлов
16_nn.xlsm
в папке …Students !
Подводим итоги
• Формулы Excel можно использовать в
  VBA
• VBA позволяет работать с Word из Excel
  и наоборот
• Работать с БД можно либо через
  QueryTables, либо через ADO
• Объект Chart позволяет программно
  создавать диаграммы и настраивать их
  параметры
Вопросы?
Контрольные вопросы
• В чем состоит проблема локализованных
  версий Excel?
• Что нужно сделать, чтобы в Excel
  использовать объектную модель Word?
• Какими способами можно получить
  данные из БД?
• Как добавить данные на лист в виде
  сводной таблицы?
• Какой метод какого объекта вы будете
  использовать, чтобы добавить на лист
  диаграмму?

More Related Content

PPTX
PPT
Архитектура корпоративных систем
PDF
Exl
PPTX
Exl
PDF
Метапрограммирование за гранью приличия
PDF
Alasql.js - SQL база данных на JavaScript / Андрей Гершун (МАГ КОНСАЛТИНГ)
PDF
Использование json/xml в БД PostgreSQL и Oracle для хранения произвольных ат...
PDF
AlgoCollections (RUS)
Архитектура корпоративных систем
Exl
Exl
Метапрограммирование за гранью приличия
Alasql.js - SQL база данных на JavaScript / Андрей Гершун (МАГ КОНСАЛТИНГ)
Использование json/xml в БД PostgreSQL и Oracle для хранения произвольных ат...
AlgoCollections (RUS)

Viewers also liked (19)

PPTX
Azure - обзор
PPTX
Azure - введение
PPTX
Azure - облачные сервисы и приложения
PPTX
Azure - обзор DevOps
PPTX
Azure - Visual Studio Team Services
PPTX
Azure - подведение итогов
PDF
Windows 7 essentials
PDF
Excel basic+adv
PDF
Буклет спеціальності "Розробка ПЗ"
PPTX
PPTX
PPTX
PPTX
PPTX
DOCX
Java 2 - Java Intro
DOCX
Java 1 - Java Fund
PPTX
Ролик колледжа
PPTX
Access 05
PPTX
Access 03
Azure - обзор
Azure - введение
Azure - облачные сервисы и приложения
Azure - обзор DevOps
Azure - Visual Studio Team Services
Azure - подведение итогов
Windows 7 essentials
Excel basic+adv
Буклет спеціальності "Розробка ПЗ"
Java 2 - Java Intro
Java 1 - Java Fund
Ролик колледжа
Access 05
Access 03
Ad

Similar to Vba 07 (20)

PPTX
PDF
Взаимодействие с источниками данных в GLPK
PPT
JavaScript-библиотека
PPTX
Паттерны проектирования источников данных
PPTX
паттерны проектирования источников данных
PPTX
MongoDB - About Performance Optimization, Ivan Griga - Smart Gamma
PPTX
Access 2000 1
PPT
Catalyst and Rose::DB
PDF
Scala, Play Framework и SBT для быстрого прототипирования и разработки веб-пр...
PDF
Ruby on Rails. Работа с моделями
PDF
Пользовательские сценарии в карточках Docsvision 5
PPTX
Референсная архитектура приложения на ASP.NET MVC
PPTX
Industrial Programming Java - Lection Pack 03 - Relational Databases - Lavren...
PPS
объекты и классы
PPTX
Python-for-Data-Analysis, Pandas, Numpy,Seaborn
PDF
Scala, SBT & Play! for Rapid Application Development
PDF
Новости Global summit 2015
PPS
объекты Word
PPTX
Multimodel Database Caché
PDF
Лекция #7. Django ORM
Взаимодействие с источниками данных в GLPK
JavaScript-библиотека
Паттерны проектирования источников данных
паттерны проектирования источников данных
MongoDB - About Performance Optimization, Ivan Griga - Smart Gamma
Access 2000 1
Catalyst and Rose::DB
Scala, Play Framework и SBT для быстрого прототипирования и разработки веб-пр...
Ruby on Rails. Работа с моделями
Пользовательские сценарии в карточках Docsvision 5
Референсная архитектура приложения на ASP.NET MVC
Industrial Programming Java - Lection Pack 03 - Relational Databases - Lavren...
объекты и классы
Python-for-Data-Analysis, Pandas, Numpy,Seaborn
Scala, SBT & Play! for Rapid Application Development
Новости Global summit 2015
объекты Word
Multimodel Database Caché
Лекция #7. Django ORM
Ad

More from Alexander Babich (20)

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

Vba 07

  • 1. Модуль 7. Отдельные аспекты программировании в Excel
  • 2. О чем мы узнаем Использование формул Работа с документами MS Word из Excel Обращение к базам данных Создание и настройка диаграмм
  • 3. Английский или русский Excel? • Проблемы в локализованных версиях • В ячейках – локализованные функции • =сумм(A1:A10) • Программно – оригинальные • Range("B1").Formula = "=sum(A1:A10)"
  • 4. Формулы в ячейках • объект Application.WorksheetFunction • более 250 функций рабочего листа • Dim num_F As Integer num_F = InputBox("Введите число") MsgBox ("Факториал числа " & num_F & " равен " & _ WorksheetFunction.Fact(num_F)) • объекты Range, как аргументы функций • все расчеты - в VBA, а на лист - лишь готовые значения
  • 5. Работа с MS Word из MS Excel • подключение соотв. объектной модели через Tools | Reference • Возможность работать с объектами Word • Dim obj_Word As Word.Application Dim obj_WDoc As Word.Document … Set obj_Word = New Word.Application obj_Word.Visible = True Set obj_WDoc = obj_Word.Documents.Add 16_02.xlsm obj_WDoc.Activate … obj_Word.Selection.TypeText (str_Str) obj_Word.Selection.TypeParagraph
  • 6. Работа с MS Excel из MS Word • Полностью аналогично VBA_16.1.pdf
  • 7. Работа с БД • Нужно иметь БД • Database.accdb в корне диска D • различные инструменты • Метод OpenDatabase рабочего листа • Коллекция QueryTables и объект QueryTable (ADO)
  • 8. Метод OpenDatabase • OpenDatabase(Filename, CommandText, Command Type, BackgroundQuery, ImportDataAs) • Filename - имя БД • CommandText - Текст запроса. • CommandType - тип запроса • xlCmdCube (куб), xlCmdList (список), xlCmdSql (SQL), xlCmdTable (таблица). • BackgroundQuery - фоновая обработка данных или обычная • ImportDataAs - способ импорта • xlPivotTableReport • xlQueryTable
  • 9. Метод OpenDatabase Workbooks.OpenDatabase _ Filename:="D:Database.accdb", _ CommandText:="Покупки", _ CommandType:=xlCmdTable, _ BackgroundQuery:=True, _ ImportDataAs:=xlQueryTable Workbooks.OpenDatabase _ Filename:="C:Database.accdb", _ CommandText:="Покупки", _ CommandType:=xlCmdTable, _ BackgroundQuery:=True, _ ImportDataAs:=xlPivotTableReport
  • 10. ADO • Коллекция QueryTables объектов QueryTable • Метод Add • WorkBook.QueryTables.Add(Connection, Destination) • Параметр Connection • объект ADODB.Recordset • Destination – объект Range, который указывает на диапазон,куда будет добавлена QueryTable • левая верхняя ячейка вставляемой таблицы таблицы
  • 11. ADO • объектная модель ADO • Tools | References, Microsoft ActiveX Data Object x.x Library • Объект ADODB • Объект ADODB.Connection • свойствоConnectionString • метод Open • объект ADODB.RecordSet • метод Open
  • 12. Пример Dim obj_Query As QueryTable Set obj_ADORec = New ADODB.Recordset Dim obj_ADOConn As ADODB.Connection obj_ADORec.Open _ Dim obj_ADORec As ADODB.Recordset Source:="SELECT * FROM Покупки", _ ActiveConnection:=obj_ADOConn Set obj_Query = _ Set obj_ADOConn = New ADODB.Connection ActiveSheet.QueryTables.Add _ obj_ADOConn.ConnectionString = _ (obj_ADORec, Range("A5")) "Provider=Microsoft.ACE.OLEDB.12.0;" & _ obj_Query.Refresh "Data Source=C:Database.accdb« obj_ADOConn.Open
  • 13. Советы • Необходимо знание SQL • Есть специфика строк подключения и особенности работаы с каждой БД http://connectionstrings.com
  • 14. Работа с диаграммами • Объект Chart • Для добавления диаграммы - метод AddChart коллекции Shapes • ActiveSheet.Shapes.AddChart • метод SetSourceData • свойство CharType • более 70 значений типа xlChartType
  • 15. Пример 'Для хранения ссылки ActiveSheet.Shapes.AddChart.Select 'на диаграмму Set obj_Chart = ActiveChart Dim obj_Chart As Chart 'Настраиваем исходные данные 'Для хранения ссылки на 'для диаграммы 'диапазон входных значений obj_Chart.SetSourceData _ Dim obj_Range As Range Source:=obj_Range, _ Set obj_Range = Selection PlotBy:=xlRows 'Добавляем новую диаграмму и 'Устанавливаем тип для диаграммы 'тут же выделяем ее obj_Chart.ChartType = xlLine 16_06.xlsm
  • 16. Практика: примеры кода Изучите содержимое файлов 16_nn.xlsm в папке …Students !
  • 17. Подводим итоги • Формулы Excel можно использовать в VBA • VBA позволяет работать с Word из Excel и наоборот • Работать с БД можно либо через QueryTables, либо через ADO • Объект Chart позволяет программно создавать диаграммы и настраивать их параметры
  • 19. Контрольные вопросы • В чем состоит проблема локализованных версий Excel? • Что нужно сделать, чтобы в Excel использовать объектную модель Word? • Какими способами можно получить данные из БД? • Как добавить данные на лист в виде сводной таблицы? • Какой метод какого объекта вы будете использовать, чтобы добавить на лист диаграмму?