Содержание в виде таблице по ГОСТ
Необходимо сделать содержание документа в виде таблицы в соответствии с ГОСТ.
Для этой цели пытаюсь написать макрос (шаблон с примером в прикрепленном файле).
В качестве названий разделов и подразделов используются стили «Заголовок 1», «Заголовок 2» и т.д.
При написании возникла проблема — как узнать количество заголовков всех уровней в документе.
Пытался использовать значение ActiveDocument.CountNumberedItems(wdNumberParagraph).
Но сюда кроме заголовков попадают и нумерованные/ненумерованные списки и при выполнении макроса возникает ошибка.
Как узнать только количество заголовков.
Post’s attachments
Содержание.dot 352.5 Кб, 33 скачиваний с 2010-08-23
You don’t have the permssions to download the attachments of this post.
2 Ответ от viter.alex 24.08.2010 02:56:01
Re: Содержание в виде таблице по ГОСТ
Давайте пойдём другим путём: сформируем содержание стандартными методами, а потом попробуем преобразовать его в таблицу. Попробуйте такой макрос:
Sub MyContent() Dim oRng As Range Dim oTbl As Table Dim oCell As Cell 'Добавляем содержание в документ With ActiveDocument .TablesOfContents.Add Range:=Selection.Range, RightAlignPageNumbers:= _ True, UseHeadingStyles:=True, UpperHeadingLevel:=1, _ LowerHeadingLevel:=4, IncludePageNumbers:=True, AddedStyles:="", _ UseHyperlinks:=True, HidePageNumbersInWeb:=True, UseOutlineLevels:= _ True .TablesOfContents(1).TabLeader = wdTabLeaderSpaces .TablesOfContents.Format = wdIndexIndent Set oRng = .TablesOfContents(.TablesOfContents.Count).Range 'Разбиваем поле содержания oRng.Fields.Unlink 'Преобразуем разбитое содержание в таблицу Set oTbl = oRng.ConvertToTable(vbTab) End With 'Добавляем один столбец слева oTbl.Columns.Add oTbl.Columns(1) For Each oCell In oTbl.Columns(2).Cells Set oRng = ActiveDocument.Range(oCell.Range.Start, oCell.Range.End - 1) 'Ссылка на номер oRng.InsertCrossReference ReferenceType:="Заголовок", ReferenceKind:= _ wdNumberFullContext, ReferenceItem:=oCell.RowIndex, InsertAsHyperlink:=True oCell.Range.InsertAfter "." & Chr(160) 'Ссылка на текст Set oRng = ActiveDocument.Range(oCell.Next.Range.Start, oCell.Next.Range.End - 1) oRng.InsertCrossReference ReferenceType:="Заголовок", ReferenceKind:= _ wdContentText, ReferenceItem:=oCell.RowIndex, InsertAsHyperlink:=True 'Ссылка на номер страницы Set oRng = ActiveDocument.Range(oCell.Next.Next.Range.Start, oCell.Next.Next.Range.End - 1) oRng.InsertCrossReference ReferenceType:="Заголовок", ReferenceKind:= _ wdPageNumber, ReferenceItem:=oCell.RowIndex, InsertAsHyperlink:=True oCell.Merge oCell.Next 'Удаляем абзаца, которые появляются после объединения ячеек oCell.Range.Find.Execute FindText:="^p", ReplaceWith:="", Replace:=wdReplaceAll DoEvents Next 'Форматирование таблицы With oTbl .Rows.SetLeftIndent LeftIndent:=-21.6, RulerStyle:=wdAdjustNone .PreferredWidth = CentimetersToPoints(18.5) .AllowPageBreaks = True .AllowAutoFit = False 'Устанваливаем отсутп от края (вровень с рамочкой) и размеры колонок .Columns(1).PreferredWidthType = wdPreferredWidthPoints .Columns(1).PreferredWidth = CentimetersToPoints(6) .Columns(2).PreferredWidthType = wdPreferredWidthPoints .Columns(2).PreferredWidth = CentimetersToPoints(9.5) .Columns(3).PreferredWidthType = wdPreferredWidthPoints .Columns(3).PreferredWidth = CentimetersToPoints(3) 'заголовок таблицы .Cell(1, 1).Range.Text = "Обозначение" .Cell(1, 2).Range.Text = "Наименование" .Cell(1, 3).Range.Text = "Примечание" .Columns.Last.Select Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter With .Rows(1).Range .Font.Bold = True .Font.Size = 12 .ParagraphFormat.Alignment = wdAlignParagraphCenter End With End With End Sub
Лучше день потерять — потом за пять минут долететь!
3 Ответ от snusnu 25.08.2010 22:01:10
Re: Содержание в виде таблице по ГОСТ
Спасибо за ваш ответ. О таком решении я бы не догадался. Но к сожалению оно не совсем подходит. При большом количестве заголовков >60 время выполнения скрипта на моем компьютере 1-1,5 мин. Поэтому изменил немного 1 вариант. Добавил обработку ошибок. Время выполнения примерно 30-40 сек.
Sub Содержание() ' Dim n, i As Integer Dim strLen As Integer Dim strCell As String 'Количество элементов n = ActiveDocument.CountNumberedItems(wdNumberParagraph) 'Создаем и форматируем таблицу Set oTable = ActiveDocument.Tables.Add(Selection.Range, 3, 3) ' заголовок + 2 дополнительные строки oTable.Rows.SetLeftIndent LeftIndent:=-21.5, RulerStyle:=wdAdjustNone oTable.PreferredWidth = CentimetersToPoints(18.5) oTable.AllowPageBreaks = True oTable.AllowAutoFit = False 'Устанваливаем отсутп от края (вровень с рамкой) и размеры колонок With oTable .Columns(1).PreferredWidthType = wdPreferredWidthPoints .Columns(1).PreferredWidth = CentimetersToPoints(6) .Columns(2).PreferredWidthType = wdPreferredWidthPoints .Columns(2).PreferredWidth = CentimetersToPoints(9.5) .Columns(3).PreferredWidthType = wdPreferredWidthPoints .Columns(3).PreferredWidth = CentimetersToPoints(3) 'заголовок таблицы .Cell(1, 1).Range.Text = "Обозначение" .Cell(1, 2).Range.Text = "Наименование" .Cell(1, 3).Range.Text = "Примечание" .Rows(1).Select End With Selection.Font.Bold = wdToggle Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter 'Заполняем таблицу On Error GoTo err1 For i = 1 To n 'во вторую колонку вносим номер заголовка oTable.Cell(i + 1, 2).Select Selection.MoveLeft Selection.InsertCrossReference ReferenceType:="Заголовок", ReferenceKind:= _ wdNumberFullContext, ReferenceItem:=i, InsertAsHyperlink:=True Selection.TypeText Text:=". " ' и название Selection.InsertCrossReference ReferenceType:="Заголовок", ReferenceKind:= _ wdContentText, ReferenceItem:=i, InsertAsHyperlink:=True ' ОПРЕДЕЛЯЕМ ДЛИНУ СТРОКИ ВО ВТОРОЙ ЯЧЕЙКЕ strCell = oTable.Cell(i + 1, 2).Range.Text strLen = Len(strCell) If strLen > 30 Then 'MsgBox (strCell) End If 'в третью колонку вносим номер страницы. Выравниваем по центру oTable.Cell(i + 1, 3).Select Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter Selection.MoveLeft Selection.InsertCrossReference ReferenceType:="Заголовок", ReferenceKind:= _ wdPageNumber, ReferenceItem:=i, InsertAsHyperlink:=True 'добавляем строку перед последней oTable.Rows.Add (oTable.Rows(oTable.Rows.Count)) Next err1: 'при возникновении ошибки удаляем 2 последние строки и завершаем скрипт oTable.Rows(oTable.Rows.Count).Delete oTable.Rows(oTable.Rows.Count).Delete Exit Sub End Sub
Код конечно не совсем правильный, но рабочий.
Но это еще не все. Возникла следующая проблема. По ГОСТу требуется чтоб высота каждой строки составляла 8 см. Длинные заголовки не влезают в одну строчку и надо переносить. Длину строки в см, насколько я знаю, макросами получить невозможно. Поэтому воспользовался средним значением количества символов (30 символов).
Как вырезать из ячейки только часть текста найти так и не смог .
Каким образом возможно это реализовать.
Пока что остановился на варианте разбивка по строчкам вручную (благо в большинстве случаев содержание не меняется) и обновлять только поля с номерами страниц по F9.
И еще вопрос: во время выполнения скрипта 5-6 раз выскакивает окошко «Недостаточно памяти. Данная операция не может быть отменена после ее завершения». Можно ли от него избавиться непосредственно в макросе или в настройках ворда (2003).
Оформление содержания в реферате, курсовой, дипломной работе

Оформление содержания курсовой (реферата, дипломной работы) по сути – это нумерация разделов, подразделов и других частей. Это одна страница, которая размещается между титульным листом и основным текстом. Продуманный и правильно составленный план помогает систематизировать информацию, быстрее ориентироваться в источниках. Это часть, которая может корректироваться или меняться, но без нее не стоит браться за написание курсовой работы или оформление реферата.
Требования к оформлению содержания по ГОСТ 2023
Стандартные требования оформления содержания указаны в ГОСТ 7.32. В соответствии с ними в верхней части листа напишите «Содержание», выровняйте по центру. Через 2 интервала следует список: «Введение», наименования глав, подглав, «Заключение», список источников информации, приложения. Наименования разделов пишутся прописными буквами, интервал полуторный. Наименования подразделов сдвигаются вправо на 1 отступ (1,25). Напротив каждого пункта указывается страница.
Порядковый номер этой страницы 2, но он не всегда нумеруется, это зависит от требований ВУЗа. Шрифт используйте такой же, как во всей работе. По ГОСТ шрифт Times New Roman, кегль 14, но в конкретном учебном заведении могут быть иные требования. Наполнение между наименованиями глав и номерами – точки. Для нумерации используются арабские цифры.
Функцию Word для создания автособираемого оглавления можно использовать только в том случае, если заголовки оформлены правильно.
Пример оформления содержания

Как сделать автоматическое содержание в Ворд
В Word процесс оформления содержания автоматизирован. Все инструменты расположены во вкладке «Ссылки»: «Оглавление», «Добавить текст», «Обновить таблицу». Удобнее всего оформлять содержание готовой курсовой или дипломной работы.

Создайте новый лист для формы. Нажмите на «Оглавление». В списке, выберите «Ручное оглавление». Появится форма для заполнения. После клика на «Введите …» образуется прямоугольник. Введите в него наименование главы.

Недостаток этого способа – необходимость вручную вносить изменения, если меняется номер листа или заглавие. Если работа объемная, ручное оформление достаточно трудоемкое. Поэтому лучше пользоваться автособираемой формой, которая заполняется автоматически.
Заголовки должны быть оформлены средствами Word, листы пронумерованы. В противном случае программа не сможет найти заголовки, отсортировать по уровням, дополнить нумерацией и вставить в оглавление.
Пометьте наименование главы, откройте вкладку «Стиль», выберите заголовок.

Если требуется другой стиль, одновременно нажмите на клавиатуре CTRL+SHIFT+S, потом – «Применить стили». Выберите в выпадающем списке нужное, кликните на «Изменить».

Чтобы пронумеровать листы, необходимо перейти на «Вставка», кликнуть по «Номер страницы». После выбора варианта нажмите на «Закрыть окно колонтитулов».

Далее присвойте всем заголовкам уровень. Откройте вкладку «Ссылки»которую используете чтобы вставить сноски, поставьте курсор перед заголовком, кликните по «Добавить текст». Выберите уровень (появится галочка). Уровень 1 – название раздела (Заголовок 1), уровень 2 – подраздела (Заголовок 2), уровень 3 – наименование более мелкой части (Заголовок 3).
Следующий шаг – оформить содержание в ворде. Поставьте курсор на том месте листа, на котором будет план. Кликните по «Оглавление», в списке выберите вариант, который собирается автоматически. Появится содержание, состоящее из названий пронумерованных разделов.

Если в работе что-то меняется, достаточно нажать на «Обновить таблицу». Оглавление сразу изменится. Сверять названия с нумерацией не нужно.

Если необходимо сделать содержание с большим количеством уровней при написании дипломной работы, кликните по «Оглавление» и выберите «Оглавление» (внизу таблицы). Откроется окно, позволяющее:
- увеличить количество уровней («Уровни»);
- изменить вид содержания (из выпадающего списка в «Форматы») – изменения сразу видны в окошке «Предварительный просмотр»;
- изменить стиль («Изменить», выбрать нужное в табличке «Стиль»);
- изменить линию, соединяющую текст с номером («Заполнитель»);
- использовать специальные стили («Параметры», выбрать в «Доступные стили» и «Уровень»).
Если необходимо удалить содержание, откройте «Ссылки», кликните по «Оглавление», потом – «Удалить оглавление».
Порядок оформления содержания вручную
Если документ небольшой, его не нужно будет редактировать, заглавия созданы без форматирования, оформить содержание вручную можно двумя способами.
Первый способ оформления. Напишите на новой странице «Содержание», перейдите на следующую строку и введите заглавие. Кнопкой «Tab» («Пробел») переместите курсор на конец строчки, напишите номер. Если между названием и номером нужны точки, сделайте их при помощи соответствующей клавиши.
Недостаток этого способа оформления – цифры не образуют аккуратный столбик. Страница выглядит неаккуратной.
Пример оформления содержания вручную

Второй способ оформления. Напишите на пустом листе «Содержание», перейдите на новую строку. В меню нажмите на нумерованный список и пишите первый заголовок. Оставьте курсор у последнего слова, нажмите на «Разметка страницы», «Абзац», «Табуляция». Установите параметры: сантиметры до номера, выравнивание по правому краю, заполнитель. Печатая следующие названия, нажимайте на «Tab», чтобы переместиться на место, где обозначается страница.
Оформление содержания таким способом выглядит более аккуратным, так как цифры располагаются точным столбиком.
Как оформить содержание в виде таблицы
Напишите на новом листе «Содержание», перейдите на следующую строку. Перейдите в раздел «Вставка», далее – «Таблица». Выберите количество строк и 2 столбца.
Пример оформления оглавления в таблице

Названия впишите в левый столбец, номера – во второй. Когда вся таблица заполнена, ее можно оставить в таком виде или сделать границы невидимыми. Пометьте ее, перейдите в «Работа с таблицами», потом — «Границы». Выберите «Нет границ». Такой план выглядит аккуратным.

Содержание – это проект, отражающий логическую структуру реферата или курсовой. В процессе оформления содержания магистерской или дипломной работы необходимо отразить общую направленность работы и перечень рассмотренных вопросов. Разделы, подразделы и другие части выделяются точно, соблюдая логическую последовательность. Без выполнения данных правил создать качественную работу невозможно. Это основной ориентир, если разработан правильно.
Как сделать содержание в Ворде (Microsoft Word)
Ориентироваться в большом документе Microsoft Word проще, если оформлено оглавление. Оно создается автоматически и помогает читателю ориентироваться в тексте, находить нужный раздел, не перелистывая все страницы. В инструкции рассмотрим несколько способов, как сделать содержание в Ворде.
Подготовительные действия для создания оглавления
Если заголовки в тексте прописаны, то пропустите данный шаг. Оглавление средствами Microsoft Word формируется за счет Заголовков текста разного уровня — 1, 2, 3 и т.д. Они — основа содержания. Формируют Заголовок нужного уровня в тексте в блоке «Стили» на вкладке «Главная». При помощи уровней пользователь выстраивает иерархию оглавления.
- Выделите или пропишите фразу для Заголовка.
- Нажмите на кнопку стиля. При наведении курсора на стиль всплывает информационное окошко с полным названием Заголовка 1, 2 или 3.


Способ 1: добавление автоматического оглавление
После того, как вы добавили в текст заголовки и подзаголовки, можно приступить к процессу добавления оглавления в документ.
- Выберите место, где будет расположено оглавление и поставьте там курсор.
- Перейдите на вкладку «Ссылки» и нажмите на кнопку «Оглавление»
- Из перечня предложенных автособираемых шаблонов выберите вид содержания.
- Вас автоматический перенесет к «Оглавлению» в тексте.


Способ 2: добавление ручного оглавление
Вы можете создать ручное содержание — третий пункт в меню «Оглавление» во вкладке «Ссылки». При выборе этой опции на листе появляется шаблон с планом и пунктирными табуляциями для нумерации страниц. Его придется заполнять вручную — печатать название разделов, проставлять страницы.

Использовать ручное содержание удобно, когда есть план, по которому нужно создать текст. В противном случае быстрее, удобнее и проще пользоваться автоматическим «Оглавлением».
Форматирование (видоизменения) оглавления
Шаблоны автособираемых и ручного содержания можно видоизменять.
- Кликните мышью по Содержанию в тексте.
- Перейдите во вкладку «Ссылки», кликните по стрелке «Оглавление».
- Выберите из перечня пункт «Настраиваемое оглавление».


Чтобы они были вынесены в Содержание, в «Общие» в пункте «Уровни» нужно установить цифру, соответствующую количеству подразделов. Например, 6. После нажатия «Ок» внесенные изменения автоматически отобразятся в самом Содержании.

Важно! Если изменения вносят в Заголовки в самом тексте или в текст добавляют (удаляют из текста) материал из-за чего меняется нумерация страниц (Заголовки в документе смещаются — поднимаются вверх или опускаются вниз), нужно дополнительно выполнить обновление таблицы, нажав на соответствующую кнопку сверху линии. Иначе Содержание останется таким, каким было.

При работе с автоматическим Содержанием не стоит забывать и о возможности выполнять редактирование данных в самом Оглавлении. Например, можно вместо слова «Оглавление» написать «План статьи» и поставить фразу по центру, используя инструменты блока «Абзац». Изменять цвет, размер и начертание, используя инструменты «Шрифт».
Как сделать содержание в ворде

Составление содержания письменного труда (реферата, курсовой, диплома или диссертации), как правило, оставляется на конец работы. Это объясняется тем, что в содержании (оглавлении) нужно указать не только последние версии названий разделов и подразделов, но и актуальные номера страниц.
Как обычно делают содержание работы
Способы, которыми обычно пользуются все, кто выполняет подобные работы, незначительно отличаются друг от друга. Вот несколько простых приемов составления оглавления письменной работы:
На отдельной странице пишется «Оглавление» или «Содержание». Затем с новой строки вписывается название первого раздела работы либо «Введение». Номер страницы вписывается в конце строки и отделяется от названия раздела кнопкой «Пробел» или «Tab». Если между главой и страницей необходимо поставить точки, несколько раз нажимают на клавишу точки. После этого с новой строки вводят название подраздела или следующего раздела и т.д.

Такой способ имеет один недостаток: номера страниц в этом случае располагаются не ровным столбиком, а вразнобой. Конечно, такое содержание выглядит неаккуратно.
Названного недостатка лишен следующий способ составления оглавления, при котором названия глав или подглав (разделов и подразделов) вписываются в таблицу, состоящую из двух столбцов. Название каждого раздела вписывается в отдельную строку первого столбика, а номер страницы в соответствующую строку второй колонки.

Содержание, составленное таким способом, выглядит значительно более привлекательно и может быть оформлено либо в виде обычной таблицы, либо границы этой таблицы делают невидимыми.
Но что же предлагает пользователям текстовый редактор Word? Поскольку в Ворде автоматизирован даже такой процесс как создание списка литературы, может быть и для составления содержания имеется удобный инструмент.
Действительно, в приложении Word имеется такая возможность. Инструменты оглавления (версия 2007 и последующие) расположены во вкладке ссылки, в ее крайней левой части. Это кнопки «Оглавление», «Добавить текст» и «Обновить таблицу». Составить оглавление можно вручную и автоматическим способом.
Составление оглавления вручную (видео)
По сути, этот способ дает нам только форму для заполнения. Форма для оглавления открывается во вкладке ссылки, разделе оглавление, нажатием на кнопку с таким же названием. В выпадающем списке выбираем Ручное оглавление. Предварительно нужно создать новую страницу для вставки формы. После этого остается заполнить появившуюся форму оглавления.

Недостатком ручного оглавления является то, что при изменении названий заголовков в тексте или изменения страницы, на которой начинается раздел, все изменения нужно будет внести в содержание. Следовательно этот метод по затратам нашего труда не сильно отличается от предыдущих, поэтому намного удобнее пользоваться автоматическим оглавлением.
Автоматическое оглавление (видео)
Для составления автоматического оглавления нужно каждому заголовку глав и подглав работы назначить уровень заголовка. Это удобно сделать с помощью стилей заголовков, здесь Заголовок 1 – это первый уровень, соответствует названию целого раздела, Заголовок 2 – это следующий более низкий уровень заголовка и т.д. Как задавать стили читайте здесь.

Следующим шагом создаем собственно оглавление. Для этого, устанавливаем курсор на чистом листе в том месте, где должно быть размещено оглавление и кликаем по кнопке Оглавление (см. Составление оглавления вручную), но в выпавшем списке выбираем одно из автособираемых оглавлений.

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

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