Vba нумерованный список в word

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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
'Option Explicit
 
Sub ВставитьПриложение()
'ПРИЛОЖЕНИЕ
On Error GoTo Err_DOC: If ActiveDocument.Name <> "" Then GoTo NoErr_DOC
Err_DOC: MvbErr (msg): Exit Sub
NoErr_DOC:
    'СООБЩЕНИЯ
    msg = "Продолжить, вставку ""Приложение""?"
    
    Set oRange = ActiveDocument.Range(Start:=Word.Selection.Start, End:=Word.Selection.Start)
    Dim oTable As Table, удалить As Table
    ширина = Fix(25 / 0.3528) 'для ширины столбца в мм
        
    'ПОДТВЕРЖДЕНИЕ
    If MvbYesNo(msg) = vbNo Then Exit Sub
    
    'УДАЛЯЕМ СТАРУЮ ТАБЛИЦУ
    If ActiveDocument.Tables.Count > 0 Then
        For Each удалить In Selection.Tables
        удалить.Delete
        Next удалить
    End If
 
    'ВСТАВЛЯЕМ НОВУЮ ТАБЛИЦУ
    Dim до As Byte: до = 6
    oRange.ParagraphFormat.Reset 'очищаем форматирование
    Set oTable = ActiveDocument.Tables.Add(oRange, 2, 2)
        oTable.Select
        oTable.Columns(1).Width = ширина 'первой колонки
        oTable.PreferredWidthType = 2    'ширина таблицы
        oTable.PreferredWidth = 100      'ширина таблицы
        Selection.Tables(1).Cell(1, 1).Range = "Приложение:"
        Selection.Tables(1).Cell(1, 1).Range.ParagraphFormat.Alignment = wdAlignParagraphRight
        Selection.Tables(1).Cell(2, 1).Range = "Всего"
        Selection.Tables(1).Cell(2, 1).Range.ParagraphFormat.SpaceBefore = до
        Selection.Tables(1).Cell(2, 1).Range.ParagraphFormat.Alignment = wdAlignParagraphRight
        Selection.Tables(1).Cell(2, 2).Range = "? л."
        Selection.Tables(1).Cell(2, 2).Range.ParagraphFormat.SpaceBefore = до
        Selection.Tables(1).Cell(2, 2).Range.ParagraphFormat.Alignment = wdAlignParagraphLeft
        Selection.Tables(1).Cell(1, 1).VerticalAlignment = wdCellAlignVerticalTop
        Selection.Tables(1).Cell(1, 2).VerticalAlignment = wdCellAlignVerticalTop
        Selection.ParagraphFormat.LineSpacing = LinesToPoints(1) 'междустрочный интервал
        Selection.ParagraphFormat.SpaceBefore = LinesToPoints(0) 'интервал перед параграфа  0.999 = 12
        Selection.ParagraphFormat.SpaceAfter = LinesToPoints(0)  'интервал после параграфа
 
    'ФОРМАТИРУЕМ ТАЛЛИЦЫ
    With oRange
        .Rows.WrapAroundText = False
        .Rows.Alignment = VerticalAlignment   'выравнивание на листе по левому краю поля
        .Rows.HeightRule = wdRowHeightAuto    'убирает галочку "Высота строки"
    End With
 
    'СОЗДАНИЕ И ОБРАБОТКА СПИСКА
    Dim lsg As Word.ListGallery, lst As Word.ListTemplate
        Set app = GetObject(, "Word.Application")
        Set Doc = Selection.Tables(1).Cell(1, 2)    'выделенная таблица
        Set lsg = app.ListGalleries(2)              'нумерованные списки.
        Set rng = Doc.Range
        
    For Each lst In lsg.ListTemplates
        With lst.ListLevels(1)
            If Right(.NumberFormat, 1) = "." And .NumberStyle = 0 Then Exit For '*
        End With
    Next lst
 
    'ОБРАБОТКА INPUTBOX
    Dim Message As String, Title As String, Default As String, MyValue As String
    Message = "Укажите колличество позиций"
    Title = MM
    Default = ""
    MyValue = InputBox(Message, Title, Default)
    rW = ChrW(8234)
    
    If MyValue = "" Then Exit Sub
    If MyValue = 0 Then Exit Sub
    If MyValue = 1 Then rng.Text = rW: GoTo d
    If MyValue = 2 Then MyValue = MyValue - 1
    If MyValue > 2 Then MyValue = MyValue - 1
    
    rng.Delete
    For i = 1 To MyValue 'если 10 - 1
        i = i: txt = txt & rW & vbCrLf
    Next i
    rng.Text = txt & rW
    
d:  'ФОРМАТИРУЕМ СПИСОК
    rng.ListFormat.ApplyListTemplate lst
    With lst.ListLevels(1)
            .Alignment = 2          'выравнивание по правому краю
            .NumberPosition = 20    'отступ слева
            .TextPosition = 20      'задает положение для второй линии
            .TrailingCharacter = 1  'символ после номера 0 - Tab, 1 - пробел
    End With
End Sub
 
Function MvbErr(msg) As String
'MsgBox ОШИБКА АКТИВНОСТИ ДОКУМЕНТА
    msg = "Необходимо открыть или создать документ!"
    Button = vbYes + 64
    Title = MM()
    MvbErr = MsgBox(msg, Button, Title)
End Function
 
Function MvbYesNo(ByVal msg) As String
'MsgBox ДА/НЕТ
    Button = vbYesNo + 64
    Title = MM
    MvbYesNo = MsgBox(msg, Button, Title)
End Function
 
Function MM() 'As String
    MM = "Вставить ""Приложение"""
End Function

Доброго времени суток всем подписчикам и читателям блога scriptcoding.ru. Сегодня мы рассмотрим, как сделать список в Word документе программным путем, с помощью коллекции ListGalleries объектной модели Word.

Коллекция ListGalleries является отправной точкой, чтобы сделать маркированный или нумерованный список в Word с помощью макросов VBA, или сценариев сервера Windows Script Host. По сути, коллекция хранит объекты ListGallery, которые представляют индивидуальный список, но, ни ListGalleries и ListGallery не содержат средств для формирования списка Word с нужными параметрами. Так, с практической стороны вам понадобится только одно свойство и один метод из коллекции и два свойства и один метод.

Для доступа к коллекции ListGalleries используется одноименное свойство класса Word.Application. Так как данный материал немного запутан, то давайте для начала рассмотрим свойства и метода коллекции и класса, а уже потом я постараюсь показать и объяснить, что и для чего нужно…

Содержание

  1. ListGalleries – свойства и методы, маркированный и нумерованный список в Word
  2. ListGallery – свойства и методы, нумерованный и маркированный список в Word
  3. ListTemplates – свойства и методы, как сделать список в Word
  4. ListTemplate – свойства и методы, типы списков в Word

ListGalleries – свойства и методы, маркированный и нумерованный список в Word

создание нумерованного и маркированного списка в word

Count– Количество классов ListGallery в текущей коллекции

Item(index) – Позволяет получить доступ к ListGallery заданного типа.

index – Определяет тип списка в Word, содержит значение константы WdListGalleryType:

  • wdBulletGallery — 1 — маркированный список Word.
  • wdNumberGallery — 2 — нумерованный список Word.
  • wdOutlineNumberGallery — 3 — многоуровневый список.

ListGallery – свойства и методы, нумерованный и маркированный список в Word

создание маркированного и нумерованного списка в Word

ListTemplates— Возвращает ListTemplates, которая представляет все типы списков в Word для указанного списка в коллекции. Только чтение.

Modified(index) – Вернет значение True, если производились изменения в заданном шаблоне списка. Только чтение.

Reset(index) – Позволяет очистить созданный ранее шаблон (index – номер шаблона).

Хорошо, теперь давайте рассмотрим, как сделать список Word, и весь процесс….

Все мы знаем, чтобы сделать список в документе Word, в первую очередь надо выбрать нужные абзацы, после этого мы выбираем типы списков Word. За тип отвечают три вкладки:

  • Маркеры – содержит 7 типов маркеров и позволяет создать собственный список-маркер.
  • Нумерация – также содержит 7 вариантов нумерованного списка в Word и дает возможность создать собственный шаблон.
  • Многоуровневый список – также на выбор дается 7 готовых шаблонов и возможность сформировать собственный.

Аналогичные действия происходят, и тогда, когда надо программно сделать список в Word:

Сначала нам нужно получить доступ к коллекции ListGalleries через одноименное свойство класса Word Application.

Далее нужно получить доступ к ListGallery – мы можем или использовать свойство item (смотрите выше) или задать значение напрямую:

oWord.ListGalleries(1)
oWord.ListGalleries.Item(1)

Обратите внимание, что мы передаем не номер класса, а его тип (всего три варианта).

После того, как мы определились с нужным типом списка в Word и получили доступ к ListGallery, нам нужно обратиться к свойству ListTemplates, которое позволяет получить доступ к одноименной коллекция:

oWord.ListGalleries(1).ListTemplates.Item(1)
oWord.ListGalleries(1).ListTemplates(1)

Хорошо мы получили доступ к коллекции ListTemplates, давайте рассмотрим, для чего она нужна. Как упоминалось выше, для каждого из трех типов списков Word есть 7 заготовленных шаблонов. Фактически, каждый такой шаблон является классом ListTemplate, входящим в состав коллекции. Как и с объектом ListGallery, тут та же ситуация – мы передаем не номер, а тип.

ListTemplates – свойства и методы, как сделать список в Word

типы Word списков

Count– Количество классов ListTemplate. Только чтение.

Add(OutlineNumbered, Name) — Возвращает ListTemplate, представляющий новый шаблон списка. Оба параметра являются дополнительными.

OutlineNumbered – True — список будет многоуровневым, False — список содержит только один уровень вложенности.

Name – имя шаблона.

Item(count) — Возвращает отдельный объект ListTemplate в коллекции.

ListTemplate – свойства и методы, типы списков в Word

как сделать Word список

ListLevels— Возвращает ListLevels, представляющую все списки для указанного ListTemplate.

Name— Возвращает или задает имя указанного класса. Чтение и запись.

OutlineNumbered— Значение true, если указанный ListTemplate является многоуровневым. Чтение и запись.

Convert(level) – Позволяет конвертировать список: многоуровневый в одноуровневый, или наоборот.

level – Дополнительный параметр, который задает уровень вложенности списка Word. Этот аргумент может быть число от 1 до 9. Если этот аргумент опущен, то значение 1 — значение по умолчанию.

Последний этап, который, показывает как сделать список в Word – этап выбора уровня вложенности. По сути, нам надо получить доступ к коллекции ListLevels и объектам ListLevel. Так как данная коллекция и объект содержат довольно много методов и свойств, то я описал их в отдельной статье – «Коллекция Word ListLevels и объект ListLevel«. Но, чтобы не предоставлять вам материал без примеров, мы сделаем два списка в Word, которые сможем многократно использовать. Я сначала приведу вам примеры кода, а уже потом объясню, что и как.

Пример на языке VBScript

' ----------------------------------------------------------------------------
' как сделать список в Word
' нумерованный список в Word
' маркированный список в Word
' ListGallery.vbs
' ----------------------------------------------------------------------------
Option Explicit
 
dim oWord, oDoc, oSel, i, oPars, MyText, oRange
dim REnd                    ' конец текста
dim List1, List2            ' два объекта ListTemplate
 
Set oWord = CreateObject("Word.Application")
Set oDoc = oWord.Documents
oDoc.Add()
Set oSel = oWord.Selection
oWord.Visible = True
 
MyText = "типы списков в Word. "
 
For i=0 to 10
    oSel.TypeText MyText & MyText & MyText & MyText & MyText & MyText & MyText
    oSel.TypeParagraph
Next
 
set oRange = oDoc(1).Range()            'Создаем Range
set oPars = oRange.Paragraphs             'Создаем Paragraps
 
' Определяем конечную позицию для текста
REnd = oPars(oPars.Count).Range.End
 
set List1 = oDoc(1).ListTemplates.Add(false)    ' Первый шаблон
set List2 = oDoc(1).ListTemplates.Add(false)    ' Второй шаблон
 
'--------------------------------------------------------------
'     Заполняем шаблоны
'--------------------------------------------------------------
With List1.ListLevels(1)
    .Alignment = 1
    .NumberPosition = 10
    .NumberStyle = 3
    .TextPosition = 20
    .TrailingCharacter = 0
        With .Font
            .Bold =true
            .Size = 20
            .Shadow = true
            .ColorIndex = 6
        End With
End With
 
With List2.ListLevels(1)
    .Alignment = 1
    .NumberPosition = 20
    .NumberStyle = 4
    .TextPosition = 20
    .TrailingCharacter = 0
        With .Font
            .Bold =true
            .Size = 20
            .Shadow = true
            .ColorIndex = 11
        End With
End With
'--------------------------------------------------------------
 
' выбираем диапазон от 2-го до 4-го абзаца
oRange.SetRange oPars(2).Range.Start, oPars(4).Range.End
' Применяем первый шаблон списка
oRange.ListFormat.ApplyListTemplateWithLevel List1, false, 0, 2
 
' выделяем заново весь диапазон
oRange.SetRange 0, REnd
 
' выбираем диапазон от 2-го до 4-го абзаца
oRange.SetRange oPars(7).Range.Start, oPars(9).Range.End
' Применяем второй шаблон списка
oRange.ListFormat.ApplyListTemplateWithLevel List2, false, 0, 2

Пример на языке JScript

// ----------------------------------------------------------------------------
// как сделать список в Word
// нумерованный список в Word
// маркированный список в Word
// ListGallery.vbs
// ----------------------------------------------------------------------------
 
var oWord1, oDoc1, oSel1, i, oPars1, MyText1, oRange1;
var REnd;                    // конец текста
var List1, List2;            // два объекта ListTemplate
 
oWord1 = WScript.CreateObject("Word.Application");
oDoc1 = oWord1.Documents;
oDoc1.Add();
oSel1 = oWord1.Selection;
oWord1.Visible = true;
 
MyText1 = "типы списков в Word. ";
 
for (i=0; i<=10; i++){
    oSel1.TypeText(MyText1 + MyText1 + MyText1 + MyText1 + MyText1 + MyText1 + MyText1);
    oSel1.TypeParagraph();
}
 
oRange1 = oDoc1(1).Range();                //Создаем Range
oPars1 = oRange1.Paragraphs;             //Создаем Paragraps
 
// Определяем конечную позицию для текста
REnd = oPars1(oPars1.Count).Range.End;
 
List1 = oDoc1(1).ListTemplates.Add(false);        // Первый шаблон
List2 = oDoc1(1).ListTemplates.Add(false);        // Второй шаблон
 
//--------------------------------------------------------------
//     Заполняем шаблоны
//--------------------------------------------------------------
with(List1.ListLevels(1)){
    Alignment = 1;
    NumberPosition = 10;
    NumberStyle = 3;
    TextPosition = 20;
    TrailingCharacter = 0;
        with(Font){
            Bold =true;
            Size = 20;
            Shadow = true;
            ColorIndex = 6;
        }
}
 
with(List2.ListLevels(1)){
    Alignment = 1;
    NumberPosition = 20;
    NumberStyle = 4;
    TextPosition = 20;
    TrailingCharacter = 0;
        with(Font){
            Bold =true;
            Size = 20;
            Shadow = true;
            ColorIndex = 11;
        }
}
//--------------------------------------------------------------
 
// выбираем диапазон от 2-го до 4-го абзаца
oRange1.SetRange(oPars1(2).Range.Start, oPars1(4).Range.End);
// Применяем первый шаблон списка
oRange1.ListFormat.ApplyListTemplateWithLevel(List1, false, 0, 2);
 
// выделяем заново весь диапазон
oRange1.SetRange(0, REnd);
 
// выбираем диапазон от 2-го до 4-го абзаца
oRange1.SetRange(oPars1(7).Range.Start, oPars1(9).Range.End);
// Применяем второй шаблон списка
oRange1.ListFormat.ApplyListTemplateWithLevel(List2, false, 0, 2);

Хорошо, теперь давайте разберем программный код. В обоих сценариях объявление практически одинаковые переменные, в примере на JS к именам я добавил единицу. oWord – хранит доступ к приложению Ворд: «Объект Word Application — свойства«, oDoc – позволит создать новый документ: «Коллекция Word Documents«, oSel – позволит выделять нужный текст: «Объект Word Selection — выделить весь текст в ворде, свойства«, oPars – отвечает за обработку абзацев: «Объект Word Paragraph и коллекция Paragraphs — основные параметры абзаца«, MyText – собственно, текст для вставки в документ, oRange – отвечает за выбор содержимого: «Объект Word Range — Выбор текста«.

Видим, что в обоих сценариях мы создали два объекта List1 и List2, которые содержат отформатированный список Word. Далее происходит процесс вызова метода ApplyListTemplateWithLevelобъекта ListFormat для заданного выбора, к нему и будет применяться сделанный в список Word. Видим, что основные параметры определяются через свойства объекта ListLevel.

Sub AddNumberedList()
    'Основные переменные документа Word, описывающие соответственно
    'приложение, документ и диапазон в документе.
    Dim app As Word.Application, doc As Word.Document, rng As Word.Range
    'Переменные, необходимые для работы со списками.
    Dim lsg As Word.ListGallery   'Галерея шаблонов списков.
    Dim lst As Word.ListTemplate  'Шаблон списка.
    'Получаем доступ к приложению Word.
    Set app = GetObject(, "Word.Application")
    'Получаем доступ к активному документу в этом приложении.
    Set doc = app.ActiveDocument
    'Получаем галерею шаблонов нумерованных списков.
    Set lsg = app.ListGalleries(2)  'Всего есть 3 галереи:
                                    '1-я - маркированные списки.
                                    '2-я - нумерованные списки.
                                    '3-я - многоуровневые списки.
    'Из множества шаблонов нумерованных списков выбираем тот,
    'который с арабскими цифрами и скобкой ")".
    For Each lst In lsg.ListTemplates
        With lst.ListLevels(1)
            If Right(.NumberFormat, 1) = ")" And .NumberStyle = 0 Then Exit For
        End With
    Next lst
    'Получаем ссылку на диапазон всего документа.
    Set rng = doc.Range
    rng.Delete
    'Вставляем в документ текст, к которому будет применяться список.
    rng.Text = "пункт 1" & vbCrLf & "пункт 2" & vbCrLf & "пункт 3"
    'Определяем формат списка с помощью шаблона lst.
    rng.ListFormat.ApplyListTemplate lst
End Sub

I have been playing with VBA code that permits automatic creation of word documents. In the example below, I write a Word paragraph 6 times. In order to do certain formatting (bullets, numbering, putting text in tables etc…) it appears necessary to make a second pass and apply formatting after text is created. Can this be done in a single pass like VBA allows us to do with bold or italics?

Example:
— toggle numbering
— write line

Sub Sample()
    Dim oWordApp As Object, oWordDoc As Object
    Dim i As Integer


    '~~> Establish an Word application object
    On Error Resume Next
    Set oWordApp = GetObject(, "Word.Application")

    If Err.Number <> 0 Then
        Set oWordApp = CreateObject("Word.Application")
    End If
    Err.Clear
    On Error GoTo 0

    oWordApp.Visible = True

    Set oWordDoc = oWordApp.Documents.Add

    With oWordDoc
        For i = 0 To 5
            .Content.InsertAfter ("Paragraph " & i)
            .Content.InsertParagraphAfter
        Next

        ' Yields execution so that the operating system can process other events.
        DoEvents

        ' why does this have to be done after creating text? 
        .Paragraphs(1).Range.ListFormat.ApplyListTemplateWithLevel ListTemplate:= _
        ListGalleries(wdNumberGallery).ListTemplates(1), ContinuePreviousList:= _
        False, ApplyTo:=wdListApplyToWholeList, DefaultListBehavior:= _
        wdWord10ListBehavior

        .Paragraphs(2).Range.ListFormat.ApplyListTemplateWithLevel ListTemplate:= _
        ListGalleries(wdNumberGallery).ListTemplates(1), ContinuePreviousList:= _
        False, ApplyTo:=wdListApplyToWholeList, DefaultListBehavior:= _
        wdWord10ListBehavior

    End With

    Set oWordApp = Nothing
    Set oWordDoc = Nothing
End Sub

example from Excel VBA for creating numbered list in Word

Community's user avatar

asked May 4, 2014 at 13:16

Mustapha George's user avatar

Mustapha GeorgeMustapha George

2,4779 gold badges47 silver badges79 bronze badges

You can obviously do it. There are few possibilities but I believe the below solution give you a clue of how to use Document.Range(start,end) property.

 With oWordDoc
        For i = 0 To 5
            .Content.InsertAfter ("Paragraph " & i)
            .Content.InsertParagraphAfter
        Next

        ' Yields execution so that the operating system can process other events.
        DoEvents

 'apply numbering for 6 added paragraphs
   .Range(.Paragraphs(1).Range.Start, _
                .Paragraphs(6).Range.End) _
        .ListFormat.ApplyListTemplateWithLevel ListTemplate:= _
        ListGalleries(wdNumberGallery).ListTemplates(1), ContinuePreviousList:= _
        False, ApplyTo:=wdListApplyToWholeList, DefaultListBehavior:= _
        wdWord10ListBehavior

'... the rest of your code here

answered May 4, 2014 at 21:06

Kazimierz Jawor's user avatar

Kazimierz JaworKazimierz Jawor

18.8k7 gold badges35 silver badges55 bronze badges

2

I had some trouble adding bullets, so here is the code that worked for me.

Note that this requires adding a reference to Microsoft Word 15.0 Object Library

Sub Generate()
Dim objWord
Dim objDoc
Dim temp3 As Word.ListTemplate
Dim objSelection
Set objWord = CreateObject("Word.Application")
Set objDoc = objWord.Documents.Add
objWord.Visible = True
Set objSelection = objWord.Selection

'Change your text here:
objSelection.TypeText ("This is my text in Word Document using Excel")
objSelection.TypeParagraph
objSelection.TypeText ("Here is more text")
'--------------------------

Set temp3 = objWord.ListGalleries(wdNumberGallery).ListTemplates(1)
With temp3.ListLevels(1)
    .Font.Name = "Symbol"
    .Font.Size = 11
    .NumberFormat = ChrW(61623)
    .TrailingCharacter = wdTrailingTab
    .NumberStyle = wdListNumberStyleArabic
    .NumberPosition = objWord.CentimetersToPoints(0.63)
    .Alignment = wdListLevelAlignLeft
    .TextPosition = objWord.CentimetersToPoints(1.27)
    .TabPosition = wdUndefined
    .StartAt = 1
End With

'Apply formatting to our range
objDoc.Range.ListFormat.ApplyListTemplate ListTemplate:=temp3
End Sub

answered Mar 3, 2016 at 18:24

user1274820's user avatar

This will do it…

    Dim wdApp As Word.Application
    Set wdApp = New Word.Application


    With wdApp
        .Visible = True
        .Activate
        .Documents.Add
        ' turn on bullets
        .ListGalleries(wdBulletGallery).ListTemplates(1).Name = ""
        .Selection.Range.ListFormat.ApplyListTemplate ListTemplate:=.ListGalleries(wdBulletGallery).ListTemplates(1), _
            continuepreviouslist:=False, applyto:=wdListApplyToWholeList, defaultlistbehavior:=wdWord9ListBehavior

        With .Selection
            .ParagraphFormat.Alignment = wdAlignParagraphLeft
            .Font.Bold = False
            .Font.Name = "Century Gothic"
            .Font.Size = 12
            .TypeText ("some details")
            .TypeParagraph
            .TypeText ("some details")
            .TypeParagraph
        End With

        ' turn off bullets
        .Selection.Range.ListFormat.RemoveNumbers wdBulletGallery

        With .Selection
            .ParagraphFormat.Alignment = wdAlignParagraphLeft
            .TypeText ("some details")
            .TypeParagraph
            .TypeText ("some details")
            .TypeParagraph

        End With

        ' turn on outline numbers
        .ListGalleries(wdOutlineNumberGallery).ListTemplates(1).Name = ""
        .Selection.Range.ListFormat.ApplyListTemplate ListTemplate:=.ListGalleries(wdOutlineNumberGallery).ListTemplates(1), _
            continuepreviouslist:=False, applyto:=wdListApplyToWholeList, defaultlistbehavior:=wdWord9ListBehavior

        With .Selection
            .ParagraphFormat.Alignment = wdAlignParagraphLeft
            .TypeText ("some details")
            .TypeParagraph
            .TypeText ("some details")

        End With

    End With

answered May 19, 2014 at 20:18

Mustapha George's user avatar

Mustapha GeorgeMustapha George

2,4779 gold badges47 silver badges79 bronze badges

1

 

ac1-caesar

Пользователь

Сообщений: 471
Регистрация: 25.07.2013

#2

03.01.2019 13:26:56

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

Тяжко дружат эксель с вордом….  :)
И синтаксис своеобразный.

Прикрепленные файлы

  • Test.zip (35.53 КБ)

Изменено: ac1-caesar03.01.2019 14:10:53

Понравилась статья? Поделить с друзьями:
  • Vba нечеткий поиск excel
  • Vba несколько книг excel в одну
  • Vba не работает excel только
  • Vba не переходит к word
  • Vba не могу открыть книгу excel