Как сделать таблицу в vba

Работа с таблицами Working with tables

В этом разделе представлены примеры Visual Basic, связанные с задачами, указанными в следующих разделах. This topic includes Visual Basic examples related to the tasks identified in the following sections.

Создание таблицы, вставка текста и применение форматирования Creating a table, inserting text, and applying formatting

В следующем примере в начало активного документа вставляется таблица из трех строк и трех столбцов. The following example inserts a four-column, three-row table at the beginning of the active document. Параметр For Each. Следующая структура используется для пошагового перехода по каждой ячейке в таблице. The For Each. Next structure is used to step through each cell in the table. В разделе For Each. Next Structure метод InsertAfter объекта Range используется для добавления текста в ячейки таблицы (ячейка 1, ячейка 2 и т. д.). Within the For Each. Next structure, the InsertAfter method of the Range object is used to add text to the table cells (Cell 1, Cell 2, and so on).

Вставка текста в ячейку таблицы Inserting text into a table cell

Возвращение текста из ячейки таблицы без возвращения маркера конца ячейки Returning text from a table cell without returning the end of cell marker

В следующем примере показано возвращение и отображение содержимого каждой ячейки в первой строке первой таблицы документа. The following example returns and displays the contents of each cell in the first row of the first document table.

Преобразование существующего текста в таблицу Converting existing text to a table

В примере ниже показано, как вставить текст с разделителями табуляцией в начало активного документа, а затем преобразовать текст в таблицу. The following example inserts tab-delimited text at the beginning of the active document and then converts the text to a table.

Возвращение содержимого каждой ячейки таблицы Returning the contents of each table cell

В следующем примере определяется массив, равный количеству ячеек в первой таблице документа (при условии, что параметр Base 1). The following example defines an array equal to the number of cells in the first document table (assuming Option Base 1). Параметр For Each. Следующая структура используется для возвращения содержимого каждой ячейки таблицы и назначения текста соответствующему элементу массива. The For Each. Next structure is used to return the contents of each table cell and assign the text to the corresponding array element.

Копирование всех таблиц в активном документе в новый документ Copying all tables in the active document into a new document

В этом примере показано, как скопировать таблицы из текущего документа в новый документ. This example copies the tables from the current document into a new document.

Поддержка и обратная связь Support and feedback

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Have questions or feedback about Office VBA or this documentation? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь. Please see Office VBA support and feedback for guidance about the ways you can receive support and provide feedback.

Источник

Практическое руководство. Создание таблицы свойств для пользовательских параметров в Visual Basic How to: Create Property Grids for User Settings in Visual Basic

Для надлежащего выполнения этого примера для приложения необходимо настроить пользовательские параметры. In order for this example to work, your application must have its user settings configured. Дополнительные сведения см. в разделе Управление параметрами приложения (.NET). For more information, see Managing Application Settings (.NET).

Объект My.Settings представляет каждый параметр в виде свойства. The My.Settings object exposes each setting as a property. Имя свойства совпадает с именем параметра, а тип свойства совпадает с типом параметра. The property name is the same as the setting name, and the property type is the same as the setting type. Область параметра определяет, доступно ли свойство только для чтения. Свойство для параметра с областью Приложение доступно только для чтения, а свойство для параметра с областью Пользователь доступно для чтения или записи. The setting’s Scope determines if the property is read-only; the property for an Application-scope setting is read-only, while the property for a User-scope setting is read-write. Дополнительные сведения см. в разделе Объект My.Settings. For more information, see My.Settings Object.

Невозможно изменить или сохранить значения параметров области определения приложения во время выполнения. You cannot change or save the values of application-scope settings at run time. Параметры области определения приложения можно изменить только при создании приложения (с помощью конструктора проектов) или путем изменения файла конфигурации приложения. Application-scope settings can be changed only when creating the application (through the Project Designer) or by editing the application’s configuration file. Дополнительные сведения см. в разделе Управление параметрами приложения (.NET). For more information, see Managing Application Settings (.NET).

Добавление таблицы свойств параметров пользователей To add a user setting property grid

Задайте объект My.Settings в качестве выделенного объекта для таблицы свойств. Set the My.Settings object as the selected object for the property grid.

Настройте таблицу свойств для отображения только параметров пользователей. Configure the property grid to show only the user settings.

Чтобы отобразить только параметры области определения приложения, используйте атрибут ApplicationScopedSettingAttribute вместо UserScopedSettingAttribute. To show only the application-scope settings, use the ApplicationScopedSettingAttribute attribute instead of UserScopedSettingAttribute.

Источник

Макрос для создания сводной таблицы в Excel

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

Создание сводных таблиц макросом

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

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

vba macros29 1

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

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

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

В данном примере создание сводной таблицы VBA-макросом будет достаточно простым. Простота решения будет достигнута за счет симуляции использования подобных параметров и действий, которые предоставляет к распоряжению мастер сводных таблиц в Excel. Используя экземпляр объекта PivotCaches запишем настройки своей сводной таблицы присвоив ей определенное имя. Это позволит потом непосредственно ссылаться на сводную таблицу в любой части кода. Для создания сводной таблицы используя макрос будем использовать метод PivotTableWizard. На этом же шаге будем использовать возможности объекта PivotFields, в котором определим структуру сводной таблицы с учетом исходных данных источника.

Написание кода макросов в Excel всегда начинается с открытия VBA-редактора (ALT+F11): «РАЗРАБОТЧИК»-«Код»-«Visual Basic».

vba macros6 1

Затем создадим модуль где будет храниться исходный код. Для этого выберите инструмент в редакторе VBA: «Insert»-«Module». В появившемся окне модуля введите следующий VBA-код макроса:

vba macros29 2

Теперь достаточно лишь запустить макрос выбрав инструмент: «РАЗРАБОТЧИК»-«Код»-«Макросы»-«CreateTableM»-«Выполнить»:

vba macros29 3

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

Описание VBA-кода макроса для создания сводной таблицы Excel

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

Свойство TanleDestination позволяет установить место для вставки будущей сводной таблицы. Если есть необходимость вставить таблицу в конкретном месте выбранного листа, тогда следует указать здесь адрес ячейки для вставки. А если же необходимо создать сводную таблицу на новом листе, тогда достаточно указать пустую строку (“”) в качестве параметра. С помощью свойства TableName присваиваем внутреннее имя будущей таблицы, в данном примере это «ТаблицаМ». Обратите внимание, что название таблицы отличается от названия листа, в котором она будет находится. Благодаря присвоению внутреннего имени для создаваемой таблицы, появляется возможность отличать ее от многих других таблиц. Но самое главное преимущество – это возможность непосредственно ссылаться к таблице через имя, вместо того чтобы каждый раз указывать место и диапазон, где будет находиться сводная таблица.

Далее с помощью инструкции конструктора With собираем блок инструкций методов, свойств и параметров структуры. Все дальнейшие опции будут реализованы внутри свойства ActiveSheet. То есть будут касаться листа, в котором будет создана сводная таблица.

Свойством Name мы определяем имя для нового листа – в данном примере это имя «Анализ». Если нужно задать для нового листа имя такое же как у новой сводной таблицы (Таблица М), тогда эту задачу лучше всего реализовать именно на данном этапе написания кода макроса.

В следующей строке определяем место на новом листе, где будет сгенерирована сводная таблица. Указывая для параметра TanleDestination свойство:

Так мы определяем, что таблица будет сгенерирована в третьей строке и в первом столбце листа. То есть в ячейке A3. Эти строки кода определяют базовую информацию о сводной таблице. Закрываем конструктор инструкцией End With.

В следующих строках кода можно определить в каких полях должны находиться отобранные данные из исходной таблицы. Эта часть исходного кода должна начинаться с очередной инструкции конструктора With и заканчиваться инструкцией End With. А внутри конструктора указываться все параметры полей сводной таблицы.

Источник

VBA Excel: примеры программ. Макросы в Excel

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

1822994

Что такое VBA

Программирование в Excel осуществляется посредством языка программирования Visual Basic for Application, который изначально встроен в самый известный табличный процессор от Microsoft.

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

Недостатком программы являются проблемы, связанные с совместимостью различных версий. Они обусловлены тем, что код программы VBA обращается к функциональным возможностям, которые присутствуют в новой версии продукта, но отсутствуют в старой. Также к минусам относят и чрезмерно высокую открытость кода для изменения посторонним лицом. Тем не менее Microsoft Office, а также IBM Lotus Symphony позволяют пользователю применять шифрование начального кода и установку пароля для его просмотра.

1822366

Объекты, коллекции, свойства и методы

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

Главным из них является Application, соответствующий самой программе Excel. Затем следуют Workbooks, Worksheets, а также Range. Например, для обращения к ячейке A1 на конкретном листе следует указать путь с учетом иерархии.

Что касается понятия «коллекция», то это группа объектов того же класса, которая в записи имеет вид ChartObjects. Ее отдельные элементы также являются объектами.

Следующее понятие — свойства. Они являются необходимой характеристикой любого объекта. Например, для Range — это Value или Formula.

Методы — это команды, показывающие, что требуется сделать. При написании кода в VBA их необходимо отделять от объекта точкой. Например, как будет показано в дальнейшем, очень часто при программировании в «Эксель» используют команду Cells(1,1).Select. Она означает, что необходимо выбрать ячейку с координатами (1,1) т.е. A1.

Вместе с ней нередко используется Selection.ClearContents. Ее выполнение означает очистку содержимого выбранной ячейки.

1822371

Как начать

Прежде всего требуется создать файл и сохранить его, присвоив имя и выбрав тип «Книга Excel с поддержкой макросов».

Затем необходимо перейти в приложение VB, для чего достаточно воспользоваться комбинацией клавиш «Alt» и «F11». Далее:

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

Обратите внимание, что строка «’Наш код» будет выделена другим цветом (зеленым). Причина в апострофе, поставленном в начале строки, который обозначает, что далее следует комментарий.

Теперь вы можете написать любой код и создать для себя новый инструмент в VBA Excel (примеры программ см. далее). Конечно, тем, кто знаком с азами Visual Basic, будет намного проще. Однако даже те, кто их не имеет, при желании смогут освоиться достаточно быстро.

Макросы в Excel

За таким названием скрываются программы, написанные на языке Visual Basic for Application. Таким образом, программирование в Excel — это создание макросов с нужным кодом. Благодаря этой возможности табличный процессор Microsoft саморазвивается, подстраиваясь под требования конкретного пользователя. Разобравшись с тем, как создавать модули для написания макросов, можно приступать к рассмотрению конкретных примеров программ VBA Excel. Лучше всего начать с самых элементарных кодов.

Пример 1

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

Для простоты в поле «Имя макроса» оставляют «Макрос1», а в поле «Сочетание клавиш» вставляют, например, hh (это значит, что запустить программку можно будет блиц-командой «Ctrl+h»). Нажимают Enter.

Теперь, когда уже запущена запись макроса, производят копирование содержимого какой-либо ячейки в другую. Возвращаются на исходную пиктограмму. Нажимают на «Запись макроса». Это действие означает завершение программки.

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

Имеет смысл увидеть, как выглядит код. Для этого вновь переходят на строку «Макросы» и нажимают «Изменить» или «Войти». В результате оказываются в среде VBA. Собственно, сам код макроса находится между строками Sub Макрос1() и End Sub.

Если копирование было выполнено, например, из ячейки А1 в ячейку C1, то одна из строк кода будет выглядеть, как Range(“C1”).Select. В переводе это выглядит, как «Диапазон(“C1”).Выделить», иными словами осуществляет переход в VBA Excel, в ячейку С1.

Активную часть кода завершает команда ActiveSheet.Paste. Она означает запись содержания выделенной ячейки (в данном случае А1) в выделенную ячейку С1.

Пример 2

Циклы VBA помогают создавать различные макросы в Excel.

Циклы VBA помогают создавать различные макросы. Предположим, что имеется функция y=x + x 2 + 3x 3 – cos(x). Требуется создать макрос для получения ее графика. Сделать это можно только, используя циклы VBA.

За начальное и конечное значение аргумента функции берут x1=0 и x2=10. Кроме того, необходимо ввести константу — значение для шага изменения аргумента и начальное значение для счетчика.

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

Do While x1 0 Then Cells(1, 1).Value = 1

Источник

Компьюетрные геннии поскажите как создать таблицу в Visual Basic, оч надо скоро сдавать!

Откройте Visual Basic 6.0 и во вкладке Рис. 1. New диалогового окна New Project выберите шаблон Data Project.
Шаг 2

В окне Project Explorer дважды щелкните DataEnvironment1 в папке Designers, в результате чего в рабочее пространство Visual Basic загрузится конструктор Рис. 2. Data Environment
Шаг 3

Щелкните правой кнопкой мыши элемент Connection1 в конструкторе Data Environment, а затем — команду Properties. После этого на экран выведется окно Рис. 3. Data Link Properties, которое мы будем использовать для установления связи с базой данных.
Шаг 4N

Работа с базой данных Northwind. Во вкладке Provider дважды щелкните опцию Microsoft Jet 3.51 OLE DB Provider — откроется вкладка Рис. 4. Connection. Выберите необходимую базу данных, щелкнув кнопку Browse. Для нашего примера найдем базу данных NorthWind (обычно она хранится по адресу C:\Program Files\Microsoft Visual Studio\VB98\Nwind.mdb, но мы используем C:\VB-DB\Nwind.mdb). Выделим ее и затем щелкнем кнопку Open.
Шаг 4P

Работа с базой данных Pubs. Во вкладке Provider дважды щелкните опцию OLE DB Provider for SQL Server — откроется вкладка Connection. Введите имя используемого вами SQL-сервера, свой идентификатор пользователя (ID) и пароль.
Шаг 5

Сейчас у вас уже установлена связь с выбранной вами базой данных. Чтобы протестировать ее, щелкните кнопку Test Connection. По окончании тестирования VB выведет на экран окно сообщения Test connection succeeded, где вам нужно щелкнуть кнопку OK. Затем повторно щелкните кнопку OK для закрытия окна Data Link Properties.
Шаг 6

Теперь щелкните значок Data View Window на верхней панели инструментов, чтобы открыть окно Data View, где дважды щелкните элемент Connection1. VB развернет дерево, отображающее связь с базой данных, показав категории элементов, которые содержатся внутри него. В нашем примере дерево содержит два элемента — Рис. 5. Tables и Views.
Шаг 7

Работа с базой данных NorthWind. Повторите шаг 7, перетащив таблицы Orders и Order_Details в конструктор Data Environment.
Шаг 8P

Работа с базой данных Pubs. Повторите шаг 7, перетащив таблицы Titles и TitleAuthor в конструктор Data Environment.
Шаг 9

Закройте окно Data View.
Шаг 10

Теперь необходимо установить родительско-дочернюю связь между тремя таблицами в конструкторе Data Environment. (Последний обладает удобными возможностями для установления подобных связей. ) Вначале щелкните правой кнопкой мыши команду Orders (или Titles) и выберите команду Properties для вывода диалогового окна Orders Properties (или Titles Properties). Щелкните вкладку Рис. 7. Relation и установите флажок Relate to a Parent Command Object.
Шаг 11

После этого раскройте список Parent Command и выберите в нем команду Customers (или TitleAuthor) в качестве родительской команды. Тогда окна списков Relation Definition автоматически заполнятся идентификаторами CustomerID (или AU_ID). Щелкните кнопку Add для установления родительско-дочерней связи, а затем щелкните OK.
Шаг 12

Источник