Правильные номера строк при печати выделенных фрагментов (Microsoft Word)
Word позволяет добавлять в документ номера строк. Это означает именно то, что написано — каждая строка в документе пронумерована от начала до конца. Это может быть очень полезно при создании специальных документов, таких как юридические документы, или при распечатке бумажных копий для последующего построчного обращения к ним.
Когда вы печатаете документ с включенными номерами непрерывных строк, Word нумерует каждую строку от начала до конца. Однако, если вы распечатываете только выделенный фрагмент (делаете выбор, отображаете диалоговое окно «Печать» и убедитесь, что выделенный фрагмент указан как то, что вы печатаете), Word не печатает номера строк правильно. Word нумерует строки в выделенном фрагменте, как если бы это был весь документ, начиная с одной и продолжая выделение. Можно подумать, что для Word лучше будет печатать номера строк в соответствии с тем, что на самом деле представляет выделение в документе. Например, если вы выбрали строки с 57 по 72 как свой выбор, а затем распечатали его, Word должен напечатать числа с 57 по 72 в левой части распечатки, а не с 1 по 15.
К сожалению, нет простого способа обойти эту проблему. Один из способов обхода — не печатать выделенные области. (Это предложение может показаться более легкомысленным, чем то, что имеется в виду.) Вместо этого распечатайте страницы. В диалоговом окне печати укажите диапазон страниц для печати, а не выбор. Word сохраняет правильную нумерацию строк, как если бы вы выполняли нумерацию с начала документа.
Другой вариант — полагаться на макрос, который сделает за вас «грязную работу». Вы можете использовать макрос для сброса номера начальной строки, используемой для вашего выбора. Ниже приведен простой макрос, который запрашивает у вас номер начальной строки, а затем распечатывает ваш выбор, используя этот номер строки в качестве первого числа, напечатанного слева. (Обратите внимание, что этот макрос не начинает печать с указанного вами номера строки — он использует номер, который вы указали как начальный номер строки вашего выбора.)
Sub LineNumbersPrint() Dim LineNumberStart As Integer On Error GoTo GetOut LineNumberStart = InputBox("First line number for printout?", _ "Line Numbers Printout") With ActiveDocument.PageSetup With .LineNumbering .Active = True .StartingNumber = LineNumberStart End With End With ActiveDocument.PrintOut , Range:=wdPrintSelection With ActiveDocument.PageSetup With .LineNumbering .Active = True .StartingNumber = 1 End With End With GetOut: End Sub
Использование этого макроса предполагает, что вы просматриваете номер начальной строки вашего выбора перед фактической печатью. Это можно сделать с помощью функции предварительного просмотра печати Word, но через некоторое время это может стать утомительным. Если вы выполняете довольно частую печать выделения, следующий макрос будет для вас более интересным. Это более сложный способ, но он автоматически определяет правильный номер строки для использования в начале выделения, а затем распечатывает выделение.
Sub Correct_Line_Numbers() Dim myRng As Range Dim StartRng As Range Dim iCount As Integer 'if you include the paragraph mark in your selection, then Word 'prints the subsequent line number; not the entire line, just the 'line number; therefore, if the last character of the current 'selection is a paragraph mark, then move the end position of 'the selection to the left by one character If Selection.Characters.Last = Chr(13) Then Selection.MoveEnd Count:=-1 End If 'set the current selection to a variable Set myRng = Selection.Range 'set the start of the document to a variable Set StartRng = ActiveDocument.Paragraphs(1).Range With Selection 'go to the beginning of the line for the current selection and 'set the iCount variable so that it counts the current line .HomeKey unit:=wdLine iCount = 1 'if the cursor is not at the beginning of the document 'then move the cursor up by one line 'increment iCount by one each time the cursor is not at 'the beginning of the document While Not Selection.InRange(StartRng) .MoveUp unit:=wdLine iCount = iCount + 1 'if the cursor is in a table, then the macro should 'reduce iCount; Word counts an entire table as one line If Selection.Rows.Count > 0 Then iCount = iCount - 1 End If Wend End With 'reset the starting line number so that it equals the 'number of times the cursor was moved up by a line ActiveDocument.PageSetup.LineNumbering.StartingNumber = iCount 'reselect the original selection myRng.Select 'print out only the original selection ActiveDocument.PrintOut Range:=wdPrintSelection 'reset the line number(by "undoing" the last two actions '[fields update and change line number]) 'so that line numbering begins at one ActiveDocument.Undo ActiveDocument.Undo 'reselect the original selection myRng.Select End Sub
С этим макросом есть одно предостережение. Если у вас есть скрытый текст в вашем документе, и этот скрытый текст отображается, но не настроен для печати, то этот макрос по-прежнему считает эти строки текста, как если бы они были напечатаны. Другими словами, макрос предполагает, что вы печатаете скрытый текст, если он отображается на экране.
_Примечание: _
Если вы хотите знать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах WordTips), я подготовил специальную страницу, содержащую полезную информацию.
link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера]
.
WordTips — ваш источник экономичного обучения работе с Microsoft Word.
(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (8520) относится к Microsoft Word 2007, 2010 и 2013.
Вы можете найти версию этого совета для старого интерфейса меню Word здесь:
link: / word-Correct_Line_Numbers_When_Printing_Selections [Правильные номера строк при печати выборок]
.