1

Тема: Заполнение элементов управления и элементов ActivateX

Довольно часто при создании какого-либо бланка, формы или шаблона документа Word мы используем элементы управления и элементы ActivateX, содержащие списки выбора.
Заполнять эти элементы вручную бывает довольно сложно и муторно. Этот процесс можно упростить если данные списка содержатся в какой-нибудь таблице данных, будь-то Word, Excel, Access и т.д., которые можно импортировать в Word.
Элементы управления использульзуются в форматах Word 2007 и выше. Т.е. файл должен иметь расширяния: «.docx», «.docm», «.dotx», «.docx».
Элементы управления содержащие списки выбора:

  • ContentControlComboBox (Поле со списком) — позволяет пользователю как выбирать значения из списка, так и самому заполнять это поле.

  • ContentControlDropdownList (Список) — ограничивает выбор пользоватяля только списком

Элементы управления ActivateX содержащие списки выбора:

  • ComboBox (Поле со списком) — позволяет пользователю как выбирать значения из списка, так и самому заполнять это поле.

  • ListBox (Список) — ограничивает выбор пользоватяля только списком

см. вложение

Несмотря на то, что общее назначение этих элементов одинаково, они различаются свойствами, способами заполнения списков и событиями происходящими при использовании этих элементов.
Но общую информаци эти элементы должны получать из таблицы данных Word. Для получения данных из таблицы мы будем использовать 2 функции: TableArray и CellValue.

  • TableArray — функция возвращающая массив данных таблицы в зависимости от выбора столбца таблицы.

  • CellValue — функция возвращающая значение ячейки, либо Строку, либо Число.

Вот код этих функций.

Public Function CellValue(Cell As Cell) As Variant ' Функция возвращает значение ячейки таблицы String или Double, где Cell ячейка таблицы
    CellValue = Cell.Range.Text ' Оригинальный текст ячейки таблицы
    CellValue = Trim(Mid(CellValue, 1, Len(CellValue) - 2)) ' Текст ячейкики таблицы без знаков закрытия последнего абзаца, знака закрытия ячейки и начальных и концевых пробелов, тип String
        If IsNumeric(CellValue) = True Then ' Если значение является числом,
            CellValue = CDbl(CellValue) ' возвращаем CellValue как значение типа Double
        End If
End Function

Public Function TableArray(ByVal myTable As Table, ByVal NumColum As Variant) As Variant ' Функция возвращает  массив таблицы, где myTable — таблица Word, NumColum — номер столбца таблицы
' Если NumColum = 0 и количество столбцов > 1, то функция возвратит двухмерный массив на основе количества строк и столбцов таблицы
' Если NumColum >= 1, то функция возвратит одномерный массив на основе количества строк и номера столбца таблицы определенного переменной NumColum
Dim lst() As Variant
Dim r As Long, c As Byte ' Переменная r — номер строки ячейки, с — номер столбца ячейки
    If NumColum = 0 And myTable.Columns.Count > 1 Then
        ReDim Preserve lst(1 To myTable.Rows.Count, 1 To myTable.Columns.Count)
            For r = 1 To myTable.Rows.Count
                For c = 1 To myTable.Columns.Count
                    lst(r, c) = CellValue(myTable.Cell(r, c))
                Next c
            Next r
    Else
        ReDim Preserve lst(1 To myTable.Rows.Count)
            For r = 1 To myTable.Rows.Count
                lst(r) = CellValue(myTable.Cell(r, NumColum))
            Next r
    End If
    TableArray = lst
End Function
Post's attachments

1.jpg 50.47 Кб, файл не был скачан. 

You don't have the permssions to download the attachments of this post.

2

Re: Заполнение элементов управления и элементов ActivateX

Как отличить “липовый” мёд от вправду липового?Ненастоящий мёд различается лестным запахом, резким специфичным вкусом, остаётся мятная горчинка в послевкусии, при употреблении кидает в налет. Не напрасно молвят, что подделка — царица медоносов, однако чрезвычайно уж своенравная царица. Дело в том, что подделка не является достоверным медоносом.  Купить мед белгород  - В нашей полосе произрастают в главном крупнолистная и мелколистная липы, медоносом выступает мелколистная подделка. Мелколистная подделка цветет 10–14 дней, позднее крупнолистной, подделка своенравная, просит неплохой погоды.  Заказать мед  это для такого, чтобы пчёлы не «затоптали» соты по главенствующего мзда.  мед с песеки белгород 

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

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