В данной статье вы узнаете, как работать с таблицами в Microsoft Word при помощи VBScript или по-другому VBS.
Базовые вещи для автоматизации Word при помощи vbs я описывал тут.
Как обычно, оставляю подробно прокомментированный код для изучения:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
Option Explicit Dim oWord ' Инициализация переменных Dim oDocument Dim oRange Dim oTable Dim nCounter Dim aNumbers Dim aNames Dim aYears Set oWord = CreateObject("Word.Application") ' Создаём объект с Word-ом oWord.Visible = True ' Делаем окно Word видимым Set oDocument = oWord.Documents.Add() ' Создаём документ Set oRange = oDocument.Range() ' Получаем место oDocument.Tables.Add oRange, 10, 3 ' Создаём таблицу с 10 строками и 3-мя колонками Set oTable = oDocument.Tables(1) ' Добавляем таблицу в переменную oTable.Range.Font.Name = "Consolas" ' Установка шрифта oTable.Range.Font.Size = 12 ' Устанавливаем размер шрифта oTable.Columns(1).Width = 60 ' Задаём ширину для 1 колонки oTable.Borders.Enable = True ' Включаем отображение рамок aNumbers = Array(1,456,345,13,5676,24,546,6865,456,28) ' Массивы с данными для отображения в таблице aNames = Array("Андрей", "Василий", "Артём", "Дмитрий", "Олег", "Игорь", "Илья", "Мефодий", "Леонид", "Павел") aYears = Array(1995,2003,1987,2001,1948,1980,1997,1987,1976,1988) For nCounter = 1 To 10 If (aNumbers(nCounter - 1) <= 500) Then ' Проверяем, если номер больше либо равно 500, тогда выполняем условие внутри oTable.Cell(nCounter, 1).Shading.BackgroundPatternColor = RGB(50,50,50) ' Изменяем фон 1 ячейки текущей строки End If oTable.Cell(nCounter, 1).Range.Text = aNumbers(nCounter - 1) ' Заполняем первую колонку данными из массива aNumbers oTable.Cell(nCounter, 2).Range.Text = aNames(nCounter - 1) ' Заполняем вторую колонку из массива aNames oTable.Cell(nCounter, 3).Range.Font.Color = RGB(GetNumber,GetNumber,GetNumber) ' Изменяем цвет текста в 3-ей колонке. Используем случайные значения. ' Для их получения вызываем функцию GetNumber oTable.Cell(nCounter, 3).Range.Text = aYears(nCounter - 1) ' Заполнение третьей колонки данными о годе рождения из массива aYears Next Function GetNumber() ' Функция для возврата рандомного (случайного) числа Dim nMin Dim nMax nMin = 10 nMax = 255 GetNumber = Int(((nMax - nMin) + 1) * Rnd + nMin) End Function |
Результат работы данного кода:
Если у вас остались вопросы, оставляйте их в комментариях.