Word VBA语法
- 格式:doc
- 大小:45.50 KB
- 文档页数:4
Word VBA语法办公软件2008-09-18 23:11:20 阅读37 评论0 字号:大中小WORD中的Range对象在操纵Word VBA,绝大多数是针对Word中的各视图中的文本进行的,正确掌握、理解和应用Word Range是Word Vba的重要一课,初学者甚至熟悉Excel的编程人员,往往对Word 中的Range对象手足无措,原因是不了解Word中Range对象的本质和意义。
1. Range 对象的定义:该对象代表文档中的一个连续范围。
每一个Range 对象由一起始和一终止字符位置定义。
和文档中书签的使用方法类似,Visual Basic 使用Range 对象识别文档的指定部分。
但和书签不同,Range 对象只在定义该对象的过程正在运行时才存在。
Range 对象和所选内容相互独立。
也就是说,可定义和复制一个范围而不需改变所选内容。
还可在文档中定义多个范围,但每一个窗格中只能有一个所选内容。
透彻的理解,只要是以文本形式存在的区域,就有Range对象,无论是页眉页脚中,批注脚注中,还是图形的文本框中,无论是一个光标,一个字符、一个词、一个句子、一个段落、一节还是一个文档,都可以看成是一个Range对象。
2. 对比EXCEL Range对象如果同EXCEL中的Range对象对比,你也许会更容易理解一些。
Excel中,每个单元格,是一个Range对象,连续或者非连续的单元格,都可以组成一个Range 对象,它由单元格地址组成的;在Word中,每个字符是一个“单元格”,它是由每个字符(无论是否可见,如段落标记等)构成了一个文档的Range对象,尽管它存活在运行时间中,也就是凡是由字符组成的具有起点和终点位置的连续文本,哪怕起点等于终点(光标)或者终点是起点位置的下一个字符,都是一个Range对象。
而Word中的Selection对象可以理解成EXCEL中的ActiveCell对象。
3. StoryRanges对象:StoryRanges由Range 对象组成的集合,该集合代表文档中的文字部分。
可使用StoryRanges(index) 返回单个部分(作为一个Range 对象),其中index 为一个wdStoryType 常量。
Start、End和StoryType属性唯一地确定了一个Range对象。
Start和End属性分别返回或者设置Range对象的起始和结束字符的位置。
每个文档构成部分起始处的字符位置是0 (zero),而第一个字符之后的位置是1,依此类推。
StoryType 属性的WdStoryType常量可以表示十一种不同的文档构成部分类型,如下:wdCommentsStorywdEndnotesStorywdEvenPagesFooterStorywdEvenPagesHeaderStorywdFirstPageFooterStorywdFirstPageHeaderStorywdFootnotesStorywdMainTextStorywdPrimaryFooterStorywdPrimaryHeaderStorywdTextFrameStoryApplication对象- - - - - - - - - - - - - - - - - - - -(301)Application.ActivePrinter ‘获取当前打印机(302)Application.Height '当前应用程序文档的高度(303) Application.Width ‘当前应用程序文档的宽度(304)Application.Build ‘获取Word版本号和编译序号(305)Application.Caption ‘当前应用程序名(306)Application.DefaultSaveFormat '返回空字符串,表示Word文档(307)Application.DisplayRecentFiles '返回是否显示最近使用的文档的状态(308)Application.Documents.Count '返回当前打开的文档数(309)Application.FontNames.Count ‘返回当前可用的字体数(310) Application.Left ‘返回当前文档的水平位置(311)Application.MacroContainer.FullName '返回当前文档名,包括所在路径(312)Application.NormalTemplate.FullName '返回文档标准模板名称及所在位置(313)Application.RecentFiles.Count '返回最近打开的文档数目(314)Application.System.CountryRegion '返回应用程序所在的地区代码(315)Application.System.FreeDiskSpace ‘返回应用程序所在磁盘可用空间(316)Application.System.HorizontalResolution '返回显示器的水平分辨率(317)Application.System.VerticalResolution '返回显示器的垂直分辨率(318)nguageDesignation '返回系统所使用的语言(319)Application.System.MathCoprocessorInstalled ‘返回系统是否安装了数学协处理器(320)Application.System.OperatingSystem ‘返回当前操作系统名(321)Application.System.ProcessorType '返回计算机处理器名(322)Application.System.Version ‘返回操作系统的版本号(323)Application.Templates.Count '返回应用程序所使用的模板数(324)erName'返回应用程序用户名(325)Application.Version ‘返回应用程序的版本号- - - - - - - - - - - - - - - - - - - - - - Documents/Document 对象- - - - - - - - - - - - - - - - - - - - - -(326)ActiveDocument.AttachedTemplate.FullName '返回当前文档采用的模板名及模板所在位置(327)ActiveDocument.Bookmarks.Count '返回当前文档中的书签数(328)ActiveDocument.Characters.Count '返回当前文档的字符数(329)ActiveD ocument.CodeName ‘返回当前文档的代码名称(330)ments.Count ‘返回当前文档中的评论数(331)ActiveDocument.Endnotes.Count '返回当前文档中的尾注数(332)ActiveDocument.Fields.Count '返回当前文档中的域数目(333)ActiveDocument.Footnotes.Count ‘返回当前文档中的脚注数(334)ActiveDocument.FullName '返回当前文档的全名及所在位置(335)ActiveDocument.HasPassword '当前文档是否有密码保护(336)ActiveDocument.Hyperlinks.Count '返回当前文档中的链接数(337) ActiveDocument.Indexes.Count '返回当前文档中的索引数(338)ActiveDocument.ListParagraphs.Count '返回当前文档中项目编号或项目符号数(339)ActiveDocument.ListTemplates.Count '返回当前文档中使用的列表模板数(340)ActiveDocument.Paragraphs.Count '返回当前文档中的段落数(341)ActiveDocument.Password=XXX '设置打开文件使用的密码(342)ActiveDocument.ReadOnly '获取当前文档是否为只读属性(343)ActiveDocument.Saved '当前文档是否被保存(344)ActiveDocument.Sections.Count '当前文档中的节数(345)ActiveDocument.Sentences.Count ‘当前文档中的语句数(346)ActiveDocument.Shapes.Count'当前文档中的形状数(347)ActiveDocument.Styles.Count '当前文档中的样式数(348)ActiveDocument.Tables.Count ‘当前文档中的表格数(349)ActiveDocument.TablesOfAuthorities.Count ‘返回当前文档中的引文目录数(350)ActiveDocument.TablesOfAuthoriti esCategories.Count ‘返回当前文档中引文目录类别数(351)ActiveDocument.TablesOfContents.Count ‘返回当前文档中的目录数(352)ActiveDocument.TablesOfFigures.Count '返回当前文档中的图表目录数-- - - - - - - - - - - - - - - - - - - - - Paragraphs/Paragraph对象- - - - - - - - - - - - - - - - - - - - - - (353)Selection.Paragraphs.Count '返回所选区域的段落数(354)Selection.Paragraphs.First '返回所选区域中的第一段(355)ActiveDocument.Paragraphs(1).LeftIndent '返回当前文档中第一段的左缩进值(356)ActiveDocument.Paragraphs(1).LineSpacing '返回当前文档中第一段的行距(357)ActiveDocument.Paragraphs(1).OutlineL evel ‘返回或设置当前文档中第一段的大纲级别(358)ActiveDocument.Paragraphs(1).RightIndent‘返回当前文档中第一段的右缩进量(359)ActiveDocument.Paragraphs(1).SpaceBefore '返回当前文档中第一段的段前间距(360)ActiveDocument.Paragraphs(1).SpaceAfter ‘返回当前文档中第一段的段后间距(361)ActiveDocument.Paragraphs(1).Range.Text '返回当前文档中第一段的内容(362)ActiveDocument.Paragraphs(1)Local '返回当前文档中第一段应用的样式名(363)ActiveDocument.Paragraphs(1).Range.Style.Description '返回当前文档中第一段所应用样式的详细描述(364)ActiveDocument.Paragraphs(1) '返回当前文档中第一段所应用样式的字体名(365)ActiveDocument.Paragraphs(1)FarEast'返回或设置一种东亚字体名(366)ActiveDocument.Paragraphs(1).Range.Style.Font.Size'返回或设置当前文档中第一段所应用样式的字体大小(367)ActiveDocument.Paragraphs(1).Range.Style.Font.Spacing'返回或设置字符间距(368)Selection.Words.Count '所选区域的字数- - - - - - - - - - - - - Sentences对象- - - - - - - - - - - - - (369)Selection.Sentences.Item(1)'所选区域中的第一句的内容- - - - - - - - - - Words对象- - - - - - - - - -(371)ActiveDocument.Words(1).Select '选择当前文档中的第一个词(372)ActiveDocument.Range.Words(1).InsertAfter "我爱你!" '在当前文档中的第一个词后插入“我爱你” -- - - - - - - - - - - - Characters对象- - - - - - - - - - - - - (373)Selection.Characters.Count '当前文档中所选区域的字符数(374)ActiveDocument.Paragraphs(1).Range.InsertParagraphAfter'在当前文档的第一段之后插入一个新段落-- - - - - - - - - - - - - - - - - Sections/Section 对象- - - - - - - - - - - - - - - - - - (375)ActiveDocument.Sections.First '当前文档的第一节(376)ActiveDocument.Sections.First.PageSetup.BottomMargin '当前文档第一节所在页的底边距(377)ActiveDocument.Sections.First.PageSetup.LeftMargin '当前文档第一节所在页的左边距(378)ActiveDocument.Sections.First.PageSetup.RightMargin '当前文档第一节所在页的右边距(379)ActiveDocument.Sections.First.PageSetup.TopMargin '当前文档第一节所在页的顶边距(380)ActiveDocument.Sections.First.PageSetup.PaperSize '返回或设置当前文档第一节所在页的大小(381)ActiveDocument.Sections.First.PageSetup.PageHeight '返回或设置当前文档第一节所在页的高度(382)ActiveDocument.Sections.First.PageSetup.PageWidth '返回或设置当前文档第一节所在页的宽度(383)ActiveDocument.Sections.AddRange:=myRange '在当前文档中添加新节(384)ActiveDocument.Sections.Item(2) '当前文档中的第二节(385)st.Range.InsertAfter "文档结束!"'在当前文档中最后一节的结尾添加文字“文档结束!” - - - - - - - - - - Range对象- - - - - - - - - - (386)ActiveDocument.Range(Start:=0, End:=10) '表示当前文档前10个字符所组成的一个Range对象(387)Set myRange = ActiveDocument.Range( _ Start:=ActiveDocument.Paragraphs(2).Range.Start, _End:=ActiveDocument.Paragraphs(4).Range.End) '将当前文档第2段至第4段设置为一个Range对象(388)ActiveDocument.Paragraphs(1).Range.Copy '复制当前文档中的第一段(389) Selection.Copy Documents.Add.Content.Paste '复制所选内容到新文档中(390)ActiveDocument.Bookmarks("Book1").Copy Name:="Book2" '将Book2书签复制Book1书签标记的位置(391)Selection.GoTo What:=wdGoToLine, Which:=wdGoToAbsolute, Count:=4'将所选内容移至文档中的第4行(392)Selection.GoToWhat:=wdGoToTable, Which:=wdGoToNext '将所选内容移至下一个表格的第1个单元格(393)Selection.Range.AutoFormat '为所选内容套用格式(394) = "Arial" '将当前文档的字体设置为斜体(395)ActiveDocument.Content.Select Selection.Delete '将当前文档中的内容删除- - - - - 其它- - - - - (396) Documents.Add '添加一个新文档(397) Set myTable =ActiveDocument.Tables.Add(Selection.Range, 2, 2) '在当前文档所选区域添加一个2行2列的表格(398)Open "C:\my.txt" For Input As #1 '打开一个用于输入的文件并令其编号为1 (399)Line Input #1, TextLine'读取被打开用于输入且编号为1的文件(400)Close #1 '关闭编号为1的文件。