我正在编写一个创建 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 找到的一些不同方法,但没有找到任何有效的方法。
答案1
更新:事实证明像 wdAlignParagraphCenter 这样的常量可能实际上没有定义,因此请在代码中检查。
获取如何在 Word(或 Excel)中进行格式化的示例的最简单方法是实际开始录制宏,执行所需的操作,然后停止录制并查看宏内容。
在您的示例代码中,我没有看到任何您尝试将文本居中的迹象。尝试类似 的操作selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
,尽管这是从文档中提取的,而不是实际尝试过的。
经过更多的实验,wdAlignParagraphCenter 的值应该是 1,但从 vbs 来看并非如此。深入研究 VBScript 文档以找出其确切定义的位置等,留给读者作为练习。
此外,请愿意阅读文档 - 可从 Word 的代码编辑器访问的 Visual Basic 参考资料中包含可能对您有用的信息。
请注意(至少根据我多年的经验),在 Word 中您可能无法执行正确运行的代码等效操作,尽管自 WordBasic 时代以来,它们可能已经有所改进。
答案2
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
答案3
%% 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 );