Я работаю над сценарием, который создает документ 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 ответа3

1

ОБНОВЛЕНИЕ: оказывается, что константы, такие как wdAlignParagraphCenter, на самом деле не могут быть определены, поэтому проверьте это в своем коде.

Самый простой способ получить пример того, как выполнить форматирование в Word (или Excel), - это фактически начать запись макроса, делать то, что вы хотите, затем остановить запись и взглянуть на содержимое макроса.

В вашем примере кода я не вижу никаких признаков того, что вы пытаетесь центрировать текст. Попробуйте что-то вроде selection.ParagraphFormat.Alignment = wdAlignParagraphCenter , хотя это извлечено из документации, а не из ее попытки.

После еще нескольких экспериментов значение wdAlignParagraphCenter должно быть равно 1, но из vbs это не так. Копаться в документации по VBScript, чтобы выяснить, где именно это определено и т.д., Оставляют читателю в качестве упражнения.

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

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

0
%% 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 );
0
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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .