Центрировать текст в документе Word
Я работаю над сценарием, который создает документ Word, но не могу выровнять текст по центру. Вот пример кода, который я использую. (VBScript)
set objword = createobject("word.application")
set doc = objword.documents.add
set selection = objword.selection
selection.Font.name = "arial"
selection.Font.size = "20"
selection.Font.Bold = true
selection.Paragraphs.Alignment = wdAlignParagraphCenter
selection.typetext "This is the title that should be centered"
selection.typeparagraph
doc.saveas("testdoc.doc")
objword.Quit
set objword = nothing
Я пробовал несколько разных вещей, которые я нашел через Google, но я не нашел ничего, что работает.
3 ответа
ОБНОВЛЕНИЕ: оказывается, что константы, такие как wdAlignParagraphCenter, на самом деле не могут быть определены, поэтому проверьте это в своем коде.
Самый простой способ получить пример того, как выполнить форматирование в Word (или Excel), - это фактически начать запись макроса, делать то, что вы хотите, затем остановить запись и взглянуть на содержимое макроса.
В вашем примере кода я не вижу никаких признаков того, что вы пытаетесь центрировать текст. Попробуйте что-то вроде selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
хотя это извлечено из документации, а не из попытки
После еще нескольких экспериментов значение wdAlignParagraphCenter должно быть равно 1, но из vbs это не так. Копаться в документации по VBScript, чтобы выяснить, где именно это определено и т. Д., Оставлено в качестве упражнения для читателя.
Кроме того, будьте готовы прочитать документацию - справочник по Visual Basic, доступный из редактора кода Word, содержит информацию, которая, вероятно, будет вам полезна.
Помните, что (по крайней мере, из моего многолетнего опыта) в Word могут быть вещи, которые не имеют правильно функционирующего эквивалента кода, хотя, возможно, они улучшили ситуацию со времен WordBasic.
%% Start by creating a Word Document
Word_COM = actxserver('Word.Application');
set(Word_COM,'visible',1);
RAM_Report = invoke(Word_COM.documents,'add');
invoke(RAM_Report.paragraphs,'add');
ReportDoc = Word_COM.Selection;
%% ReprtDoc Created
ReportDoc.Paragraphs.Alignment = 1;
MyTextWithLineFeed = sprintf('%s\n','Hello World');
ReportDoc.TypeText( MyTextWithLineFeed );
Set objWord = CreateObject("word.application")
Set objDoc = objWord.Documents.Add
Set objSelection = objWord.Selection
objSelection.Font.Name = "arial"
objSelection.Font.Size = "20"
objSelection.Font.Bold = True
objSelection.Paragraphs.Alignment = wdAlignParagraphCenter
objSelection.typetext "This is the title that should be centered"
objSelection.typeparagraph
objDoc.saveas ("testdoc.doc")
objWord.Quit
Set objWord = Nothing