Как сделать многоуровневую нумерацию word

Как сделать многоуровневую нумерацию word
Как сделать многоуровневую нумерацию word
Как сделать многоуровневую нумерацию word
Как сделать многоуровневую нумерацию word

Всем привет, с вами автор блога scriptcoding.ru. В этой статье мы рассмотрим, как в Word создать список многоуровневого типа.

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

При создании многоуровневого списка программа Word берет на себя большую часть работы, так как нам остается выбрать только нужный шаблон (маркированный или нумерованный список). Если в начале заданного абзаца нажать кнопку табуляции, то произойдет автоматическая смена шаблона. При желании мы можем выбрать нужные абзацы и нужный шаблон или задать собственный.

Многоуровневый список в Word

Что бы вам было все понятно, рассмотрим несколько примеров создания многоуровневого списка в Word. Предварительно подготовим текст, который будет содержать 10 абзацев.

многоуровневый Word список

Создать многоуровневый список в документе Word, который состоит из трех уровней. Первый уровень будет содержать цифры ("1."), второй – маленькие латинские буквы ("a."), а третий – квадратные маркеры.

  • Выделяем весь текст и на панели выбираем список "Нумерация".
  • Теперь выделим абзацы с 3 по 6 и нажмем кнопку табуляции. Программа автоматически покажет, как в Word создать список из маленьких латинских букв.
  • Теперь снова нажимаем кнопку табуляции для абзацев c и d, автоматически произойдет формирование многоуровневого списка Word, содержащего римские буквы.
  • Выделяем оба абзаца с арабскими буквами и применяем список "Маркер", (смотрите статью "Создание маркированного списка в Word")
  • Все, мы показали, как в Word создать многоуровневый список нужного формата.

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

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

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

как создать в word список

Создание многоуровневого списка в Word, содержащего два уровня, но, без табуляции.

  • В этом случае мы применяем ко всем абзацам нумерованный список, далее, выделяем нужные абзацы и нажимаем правую кнопку мыши.
  • В контекстном меню надо выбрать пункт "задать начальное значение". Задаем число 1 и все, у нас появился вложенный нумерованный список.

Хорошо, как вручную создать в Word многоуровневый список мы рассмотрели – ничего сложного нет. Теперь давайте попробуем проделать то же самое, но, программным путем с помощью объектной модели Word. Для этого мы напишем два программных кода, на языке VBScript и JScript.

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

Программный код на языке VBSCRIPT:

' ---------------------------------------------------------------------------- ' Создание простого многоуровневого списка Word ' 1_spiski_v_word.vbs ' ---------------------------------------------------------------------------- Option Explicit dim oWord, oDoc, oSel, oRange, oPars dim LT, REnd, x, i set oWord = WScript.CreateObject("Word.Application") ' Класс Word set oDoc = oWord.Documents ' Коллекция Documents oDoc.Add() ' Создаем новый документ set oSel = oWord.Selection ' Объект Selection oWord.Visible = True ' Делаем документ видимым set oRange = oDoc(1).Range() ' Класс Range ' Вставляем текст 20 раз For i=0 to 20 oSel.TypeText "Многоуровневый список в word" oSel.TypeParagraph ' Вставляем абзац Next set oPars = oRange.Paragraphs ' Коллекция Paragraps set LT = oDoc(1).ListTemplates.Add(true) ' Объект Template ' Определяем формат для каждого уровня For x = 1 To 9 With LT.ListLevels(x) .NumberStyle = 0 ' стиль .NumberPosition = oWord.InchesToPoints(0.25 (x - 1)) .TextPosition = oWord.InchesToPoints(0.25 x) End With Next ' Конечная позиция для текста REnd = oPars(oPars.Count).Range.End ' применяем созданный шаблон oRange.ListFormat.ApplyListTemplate LT ' Вызываем процедуру LRange с разными параметрами call LRange(3,15):call LRange(5,15):call LRange(7,10):call LRange(8,10):call LRange(12,15) ' Процедура выбора диапазона и вставки уровня как в word создать список Sub LRange(a, b) With oRange .setRange 0, REnd .setRange oPars(a).Range.Start, oPars(b).Range.End .ListFormat.ListIndent End With End Sub

 

Программный код на языке JSCRIPT:

// ---------------------------------------------------------------------------- // Создание простого многоуровневого списка Word // 1_spiski_v_word.js // ---------------------------------------------------------------------------- var oWord1, oDoc1, oSel1, oRange1, oPars1; var LT, REnd, x, i; oWord1 = WScript.CreateObject("Word.Application"); // Объект Word oDoc1 = oWord1.Documents; // Коллекция Documents oDoc1.Add(); // Создаем новый документ oSel1 = oWord1.Selection; // Объект Selection oWord1.Visible = true; // Делаем документ видимым oRange1 = oDoc1(1).Range(); //Объект Range // Вставляем текст 22 раз for(i=0; i<=20; i++){ oSel1.TypeText("Многоуровневый список в word"); oSel1.TypeParagraph(); // Вставляем абзац } oPars1 = oRange1.Paragraphs; //Коллекция Paragraphs LT = oDoc1(1).ListTemplates.Add(true); // Объект Template // Определяем формат для каждого уровня for(x=1; x<=9; x++){ with (LT.ListLevels(x)){ NumberStyle = 0; // стиль списка NumberPosition = oWord1.InchesToPoints(0.25 (x - 1)); TextPosition = oWord1.InchesToPoints(0.25 x); } } // Конечная позиция для текста REnd = oPars1(oPars1.Count).Range.End; // применяем созданный шаблон oRange1.ListFormat.ApplyListTemplate(LT); // Вызываем процедуру LRange с разными параметрами как в word создать список LRange(3,15); LRange(5,15); LRange(7,10); LRange(8,10); LRange(12,15); // Процедура выбора диапазона и вставки уровня function LRange(a, b){ with(oRange1){ setRange(0, REnd); setRange(oPars1(a).Range.Start, oPars1(b).Range.End); ListFormat.ListIndent(); } }

В данном примере мы сначала создаем новый документ и вставляем в него текст 20 раз, в конце каждой строки добавляется абзац (метод TypeParagraph объекта Selection). Далее происходит объявление переменной LT, которая будет содержать новый шаблон списка. Шаблон формируется с помощью метода Add объекта ListTemplate. Обратите внимание, что методу передается логический параметр true, который говорит, что мы хотим создать многоуровневый список в Word.

Далее происходит перебор все уровней списка (всего их может быть 9). Тут мы особого ничего не делаем, просто выбираем стиль (свойство NumberStyle объекта ListLevel) – тут значение 0, любое другое значение вызовет ошибку, так как многоуровневый список Word автоматически считается нумерованным, и никакой другой стиль не подходит (например, маркер).

После того, как мы создали собственный шаблон стиля, его нужно применить к выбранным абзацам, за это отвечает метод ApplyListTemplate объекта ListFormat, в качестве параметра мы передаем имя переменной, содержащей шаблон.

Далее происходит вызов процедуры LRange, в качестве параметров мы передаем два числа – номера абзацев, которые нужно выбрать. В самой процедуре происходит выбор заданного диапазона, и вызов метода ListIndent объекта ListFormat, который добавляет уровень к имеющемуся многоуровневому списку в Word.

В итоге, мы получим многоуровневый список Word состоящий из нескольких уровней.

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

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

Хорошо, давайте рассмотрим следующие примеры.

Программный код на языке VBSCRIPT:

' ---------------------------------------------------------------------------- ' Создание форматированого многоуровневого списка Word ' 2_spiski_v_word.vbs ' ---------------------------------------------------------------------------- Option Explicit dim oWord, oDoc, oSel, oRange, oPars dim LT, REnd, x, i, LText set oWord = WScript.CreateObject("Word.Application") ' Класс Word set oDoc = oWord.Documents ' Коллекция Documents oDoc.Add() ' Создаем новый документ set oSel = oWord.Selection ' Объект Selection oWord.Visible = True ' Делаем документ видимым set oRange = oDoc(1).Range() ' Класс Range LText= "Многоуровневый список в word. " For i=0 to 20 oSel.TypeText LText & LText oSel.TypeParagraph Next set oPars = oRange.Paragraphs 'Коллекция Paragraps set LT = oDoc(1).ListTemplates.Add(true) ' Объект Template For x = 1 To 9 With LT.ListLevels(x) .NumberStyle = 0 .NumberPosition = oWord.InchesToPoints(0.25 (x - 1)) .TextPosition = oWord.InchesToPoints(0.25 x) select case x case 1 .NumberFormat = "%" & x & "." With .Font .Bold =true .Shadow = true End With case 2 .NumberFormat = "%1" & "." & "%" & x With .Font .Bold =true .ColorIndex = 2 End With case 3 .NumberFormat = "%1.%2." & "%" & x .Font.ColorIndex = 11 case else .NumberFormat = " дополнительный пункт" end select End With Next REnd = oPars(oPars.Count).Range.End ' как в word создать список oRange.ListFormat.ApplyListTemplate LT call LRange(3,10):call LRange(12,17):call LRange(7,10):call LRange(14,17):call LRange(15,17) Sub LRange(a, b) With oRange .setRange 0, REnd .setRange oPars(a).Range.Start, oPars(b).Range.End .ListFormat.ListIndent End With End Sub

Программный код на языке JSCRIPT:

// ---------------------------------------------------------------------------- // Создание простого многоуровневого списка Word // 2_spiski_v_word.js // ---------------------------------------------------------------------------- var oWord1, oDoc1, oSel1, oRange1, oPars1; var LT, REnd, x, i, LText; oWord1 = WScript.CreateObject("Word.Application"); // Класс Word oDoc1 = oWord1.Documents; // Коллекция Documents oDoc1.Add(); // Создаем новый документ oSel1 = oWord1.Selection; // Объект Selection oWord1.Visible = true; // Делаем документ видимым oRange1 = oDoc1(1).Range(); //Класс Range LText= "Многоуровневый список в word. "; for(i=0; i<=20; i++){ oSel1.TypeText(LText + LText); oSel1.TypeParagraph(); } oPars1 = oRange1.Paragraphs; //Коллекция Paragraps LT = oDoc1(1).ListTemplates.Add(true); // Объект Template for(x=1; x<=9; x++){ with (LT.ListLevels(x)){ NumberStyle = 0; NumberPosition = oWord1.InchesToPoints(0.25 (x - 1)); TextPosition = oWord1.InchesToPoints(0.25 x); switch(x){ case 1: NumberFormat = "%" + x + "."; with(Font){ Bold =true; Shadow = true; } break; case 2: NumberFormat = "%1" + "." + "%" + x; with(Font){ Bold =true; ColorIndex = 2; } break; case 3: NumberFormat = "%1.%2." + "%" + x; Font.ColorIndex = 11; break; default: NumberFormat = " дополнительный пункт"; } } } REnd = oPars1(oPars1.Count).Range.End; // как в word создать список oRange1.ListFormat.ApplyListTemplate(LT); LRange(3,10); LRange(12,17); LRange(7,10); LRange(14,17); LRange(15,17); function LRange(a, b){ with(oRange1){ setRange(0, REnd); setRange(oPars1(a).Range.Start, oPars1(b).Range.End); ListFormat.ListIndent(); } }

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

  • 1.
  • ……
  • 1.1.
  • ……
  • 1.1.1.
  • ……
  • дополнительный пункт

Также, используя свойства объекта Font, мы задали форматирование текста для заданного пункта (цвет, жирный).

Как в Word создать список

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

И напоследок еще пара примеров.

Программный код на языке VBSCRIPT:

' ---------------------------------------------------------------------------- ' Создание форматированого комбинированого многоуровневого списка в Word ' 3_spiski_v_word.vbs ' ---------------------------------------------------------------------------- Option Explicit dim oWord, oDoc, oSel, oRange, oPars dim LT, REnd, x, i, LText set oWord = WScript.CreateObject("Word.Application") ' Класс Word set oDoc = oWord.Documents ' Коллекция Documents oDoc.Add() ' Создаем новый документ set oSel = oWord.Selection ' Объект Selection oWord.Visible = True ' Делаем документ видимым set oRange = oDoc(1).Range() ' Класс Range LText= "Многоуровневый список в word. " For i=0 to 20 oSel.TypeText LText & LText oSel.TypeParagraph Next set oPars = oRange.Paragraphs 'Коллекция Paragraps set LT = oDoc(1).ListTemplates.Add(true) ' Объект Template For x = 1 To 9 With LT.ListLevels(x) .NumberStyle = 0 .NumberPosition = oWord.InchesToPoints(0.25 (x - 1)) .TextPosition = oWord.InchesToPoints(0.25 x) select case x case 1 .NumberFormat = "%" & x & "." With .Font .Bold =true .Shadow = true End With case 2 .NumberFormat = "%" & x & " пункт" With .Font .Bold =true .ColorIndex = 2 End With case 3 .NumberFormat = "%-" .Font.ColorIndex = 11 case else .NumberFormat = "%" end select End With Next REnd = oPars(oPars.Count).Range.End oRange.ListFormat.ApplyListTemplate LT call LRange(3,10):call LRange(8,10) oRange.ListFormat.ApplyListTemplateWithLevel oWord.ListGalleries(1).ListTemplates(7), false, 2, 1 call LRange(15,18) oRange.ListFormat.ApplyListTemplateWithLevel oWord.ListGalleries(1).ListTemplates(7), false, 2, 1 ' как в word создать список call LRange(17,18) oRange.ListFormat.ApplyListTemplateWithLevel oWord.ListGalleries(1).ListTemplates(6), false, 2, 1 Sub LRange(a, b) With oRange .SetRange 0, REnd .SetRange oPars(a).Range.Start, oPars(b).Range.End .ListFormat.ListIndent End With End Sub

Программный код на языке JSCRIPT:

// ---------------------------------------------------------------------------- // Создание форматированого комбинированого многоуровневого списка в Word // 3_spiski_v_word.js // ---------------------------------------------------------------------------- var oWord1, oDoc1, oSel1, oRange1, oPars1; var LT, REnd, x, i, LText; oWord1 = WScript.CreateObject("Word.Application"); // Объект Word oDoc1 = oWord1.Documents; // Коллекция Documents oDoc1.Add(); // Создаем новый документ oSel1 = oWord1.Selection; // Объект Selection oWord1.Visible = true; // Делаем документ видимым oRange1 = oDoc1(1).Range(); //Объект Range LText= "Многоуровневый список в word. "; for(i=0; i<=20; i++){ oSel1.TypeText(LText + LText); oSel1.TypeParagraph(); } oPars1 = oRange1.Paragraphs; //Коллекция Paragraps LT = oDoc1(1).ListTemplates.Add(true); // Объект Template for(x=1; x<=9; x++){ with (LT.ListLevels(x)){ NumberStyle = 0; NumberPosition = oWord1.InchesToPoints(0.25 (x - 1)); TextPosition = oWord1.InchesToPoints(0.25 x); switch(x){ case 1: NumberFormat = "%" + x + "."; with(Font){ Bold =true; Shadow = true; } break; case 2: NumberFormat = "%"+ x + " пункт"; with(Font){ Bold =true; ColorIndex = 2; } break; case 3: NumberFormat = "%-"; Font.ColorIndex = 11; break; default: NumberFormat = "%"; } } } REnd = oPars1(oPars1.Count).Range.End; oRange1.ListFormat.ApplyListTemplate(LT); LRange(3,10); LRange(8,10); oRange1.ListFormat.ApplyListTemplateWithLevel(oWord1.ListGalleries(1).ListTemplates(7), false, 2, 1); // как в word создать список LRange(15,18); oRange1.ListFormat.ApplyListTemplateWithLevel(oWord1.ListGalleries(1).ListTemplates(7), false, 2, 1); LRange(17,18); oRange1.ListFormat.ApplyListTemplateWithLevel(oWord1.ListGalleries(1).ListTemplates(6), false, 2, 1); function LRange(a, b){ with(oRange1){ setRange(0, REnd); setRange(oPars1(a).Range.Start, oPars1(b).Range.End); ListFormat.ListIndent(); } }

В этом последнем примере, мы сначала сформировали многоуровневый список в Word на основе созданного шаблона, а потом применили список "Маркер" к отдельным пунктам (метод ApplyListTemplateWithLevel). Обратите внимание, что параметры текста, определенные в нашем шаблоне автоматически были применены к маркированному списку.

Спасибо за внимание. Автор блога Владимир Баталий

Как сделать многоуровневую нумерацию word Как сделать многоуровневую нумерацию word Как сделать многоуровневую нумерацию word Как сделать многоуровневую нумерацию word Как сделать многоуровневую нумерацию word Как сделать многоуровневую нумерацию word Как сделать многоуровневую нумерацию word

Лучшие статьи:



Самые удобные места в самолете на схеме

Как сделать фигурку из воздушных шариков своими руками

Схемы тв без регистрации

Схема электрики в 1 комнатной квартире

Самые сложные прически для средних волос