Изменение междустрочного интервала в Word через Delphi

19.08.2011
После попытки записи макроса, изменения интервала и просмотра кода макроса, я был удивлён тем, что макрос оказался пуст. Теперь же небольшая заметка о том, как изменить интервал программно, через Delphi.

Свойства


Для начала надо выбрать ту часть документа, в которой мы хотим изменить интервал. Выберем первую таблицу:
WordDocument1.Tables.Item(1).Select;

Теперь осталось изменить у неё свойства LineUnitAfter и LineUnitBefore, первое отвечает за интервал "после", а второе "перед". Установим интервал равным 0:
WordApplication1.Selection.ParagraphFormat.LineUnitAfter  := 0;

WordApplication1.Selection.ParagraphFormat.LineUnitBefore := 0;

Стоит заметить что в данном случае интервал измеряется в строках, а что бы устанавливать значения в пунктах (пт.) надо использовать следующую функцию:
WordApplication.LinesToPoints(i);

Где i - количество строк, т.е приравнивание будет иметь вид:
WordApplication1.Selection.ParagraphFormat.LineUnitAfter  := WordApplication.LinesToPoints(0);

WordApplication1.Selection.ParagraphFormat.LineUnitBefore := WordApplication.LinesToPoints(0);

Но, почему то у меня при установке интервала равным нулю ничего не менялось и значение оставались равными по умолчанию. В качестве выхода, можно указать очень маленькая значение, например 0.01
WordApplication1.Selection.ParagraphFormat.LineUnitAfter  := 0.01;

WordApplication1.Selection.ParagraphFormat.LineUnitBefore := 0.01;

После чего Word автоматически приравняет столь маленькое значение нулю.