Word 窗口大小VBA设置
- 格式:doc
- 大小:23.50 KB
- 文档页数:1


用VBA操作Word(转)在所有Office 应用程序中,Microsoft Word 可能是应用最广泛的应用程序,它还经常在自定义Office 解决方案中扮演重要的角色。
开发人员用各种不同的方式使用Word,有一些方式很简单,而另一些极其复杂。
无论涉及何种自定义解决方案,用Visual Basic for Applications (VBA) 处理Word 文档的基本方法都是一样的。
在本栏目中,我将概括地介绍如何使用Word,并提供一些关于如何运用Range 对象处理Word 文档内容的详细资料。
理解基本方法在Word 中,几乎所有的操作都要调用Document 对象本身或其内容。
当您用VBA 操作Word 时,Document 对象表示一个打开的文档,而且所有的Document 对象都是Application 对象的Documents 集合的成员。
文档是一个由字符、单词、句子和段落组成的集合,字符组成单词,单词组成句子,句子组成段落,等等。
因此,每一个Document 对象都具有Characters、Words、Sentences 和Paragraghs 四个集合。
此外,每个文档具有一个包含一个或多个节的Sections 集合,每一个节都有一个包含该节页眉和页脚的HeadersFooters 集合。
注意:您可以在Microsoft Office 2000 开发人员对象模型指南(英文)中查阅完整的Word 对象模型。
另外,您也可以使用对象浏览器和Microsoft Word Visual Basic 参考帮助来学习有关具体某个对象、属性、方法和事件的详细内容。
通过VBA 使用Word 时,Document 对象处于中心位置。
如果您要打开文档或创建新文档,就要创建新的Document 对象。
每个打开或新创建的文档均被添加至Documents 集合。
具有焦点的文档称为活动文档,由ActiveDocument 属性表示。
利用VBA设置Word文档的页面布局或者:代码:●当前文档的页面设置Sub glkCurrentDocPageSetup()Dim glkDoc As Document '定义变量Set glkDoc = Application.ActiveDocument '设置为当前文档With glkDoc '设置文档参数With .PageSetup '设置【页面设置】参数.Orientation = wdOrientPortrait '页面方向:wdOrientPortrait--纵向,wdOrientLandscape--横向 .PageWidth = CentimetersToPoints(21) '纸张宽21cm.PageHeight = CentimetersToPoints(29.7) '纸张高29.7cm.TopMargin = CentimetersToPoints(2) '上边距2cm.BottomMargin = CentimetersToPoints(1.5) '下边距1.5cm.LeftMargin = CentimetersToPoints(2.5) '左边距2.5cm.RightMargin = CentimetersToPoints(1.5) '右边距1.5cm.HeaderDistance = CentimetersToPoints(0.5) '页眉0.5cm.FooterDistance = CentimetersToPoints(0.5) '页脚0.5cmEnd With '结束【页面设置】参数设置.Save '保存文档参数End With '结束文档参数设置End Sub●选择文档的页面设置Sub glkSelectDocPageSetup()Dim glkFileDialog As FileDialog '定义选择文件对话框Dim glkSelectedItem As Variant '定义变量Dim glkDoc As Document '定义文档Set glkFileDialog = Application.FileDialog(msoFileDialogFilePicker) '设置变量With glkFileDialog '设置对话框属性.Filters.Clear '清除过滤器.Filters.Add "所有 WORD 文件", "*.Doc", 1 '添加过滤条件.AllowMultiSelect = True '允许多选If .Show = -1 Then '如果按【打开】Application.ScreenUpdating = False '关闭屏幕更新For Each glkSelectedItem In .SelectedItems 'For-Next循环Set glkDoc = Documents.Open(FileName:=glkSelectedItem, Visible:=False) '后台打开所选文档 With glkDoc '设置文档参数With .PageSetup '设置【页面设置】参数.Orientation = wdOrientPortrait '页面方向:wdOrientPortrait--纵向,wdOrientLandscape--横向.PageWidth = CentimetersToPoints(21) '纸张宽21cm.PageHeight = CentimetersToPoints(29.7) '纸张高29.7cm.TopMargin = CentimetersToPoints(2) '上边距2cm.BottomMargin = CentimetersToPoints(1.5) '下边距1.5cm.LeftMargin = CentimetersToPoints(2.5) '左边距2.5cm.RightMargin = CentimetersToPoints(1.5) '右边距1.5cm.HeaderDistance = CentimetersToPoints(0.5) '页眉0.5cm.FooterDistance = CentimetersToPoints(0.5) '页脚0.5cmEnd With '结束【页面设置】参数设置.Save '保存文档参数End With '结束文档参数设置glkDoc.Close '关闭文档NextApplication.ScreenUpdating = True '启用屏幕更新MsgBox "所选文档的页面已设置完毕!", vbInformationElse '如果按【取消】MsgBox "您取消了本次操作!", vbInformationEnd IfEnd With备用资料:Sub 批量格式设置() '此代码为指定文件夹中所有选取的WORD文件的进行格式设置Dim MyDialog As FileDialog, vrtSelectedItem As Variant, Doc As Document' On Error Resume Next '忽略错误'定义一个文件夹选取对话框Set MyDialog = Application.FileDialog(msoFileDialogFilePicker)With MyDialog.Filters.Clear '清除所有文件筛选器中的项目.Filters.Add "所有WORD 文件", "*.doc", 1 '增加筛选器的项目为所有WORD文件.AllowMultiSelect = True '允许多项选择If .Show = -1 Then '确定Application.ScreenUpdating = FalseFor Each vrtSelectedItem In .SelectedItems '在所有选取项目中循环Set Doc = Documents.Open(FileName:=vrtSelectedItem, Visible:=False)With DocWith .PageSetup '进行页面设置.Orientation = wdOrientPortrait '页面方向为纵向.TopMargin = CentimetersToPoints(2.2) '上边距为2.2cm.BottomMargin = CentimetersToPoints(2.2) '下边距为2.2cm.LeftMargin = CentimetersToPoints(2.5) '左边距为2.5cm.RightMargin = CentimetersToPoints(2.5) '右边距为2.5com.Gutter = CentimetersT oPoints(0) '装订线0cm.HeaderDistance = CentimetersToPoints(1.5) '页眉1.5cm.FooterDistance = CentimetersToPoints(1.75) '页脚1.75cm.PageWidth = CentimetersToPoints(21) '纸张宽21cm.PageHeight = CentimetersToPoints(29.7) '纸张高29.7cm.SectionStart = wdSectionNewPage '节的起始位置:新建页.OddAndEvenPagesHeaderFooter = False '不勾选“奇偶页不同”.DifferentFirstPageHeaderFooter = False '不勾选“首页不同”.VerticalAlignment = wdAlignVerticalTop '页面垂直对齐方式为“顶端对齐”.SuppressEndnotes = False '不隐藏尾注.MirrorMargins = False '不设置首页的内外边距.BookFoldRevPrinting = False '不设置手动双面打印.BookFoldPrintingSheets = 1 '默认打印份数为1.GutterPos = wdGutterPosLeft '装订线位于左侧.LayoutMode = wdLayoutModeLineGrid '版式模式为“只指定行网格”End WithWith .Content.ParagraphFormat '段落格式设置.LeftIndent = CentimetersToPoints(0) '左缩进0cm.RightIndent = CentimetersToPoints(0) '右缩进0cm.SpaceBefore = 0 '段前间距0cm.SpaceBeforeAuto = False '段前间距不设为“自动”.SpaceAfter = 0 '段后间距0cm.SpaceAfterAuto = False '段后间距不设为“自动”.LineSpacingRule = wdLineSpaceExactly.LineSpacing = 24 '行距24磅.Alignment = wdAlignParagraphJustify '段落设置为两端对齐.WidowControl = False '不勾选“孤行控制”.KeepWithNext = False '不勾选“与下段同页”.KeepTogether = False '不勾选“段中不分页”.PageBreakBefore = False '不勾选“段前同页”.NoLineNumber = False '不勾选“取消行号”.Hyphenation = True '不勾选“允许西文在单词中间换行”.FirstLineIndent = CentimetersToPoints(0) '首行缩进0cm.OutlineLevel = wdOutlineLevelBodyText '大纲级别为“正文文本”.CharacterUnitLeftIndent = 0 '段落左缩进0cm.CharacterUnitRightIndent = 0 '段落右缩进0cm.CharacterUnitFirstLineIndent = 0 '特殊格式为“无”.LineUnitBefore = 0 '段前间距为0.LineUnitAfter = 0 '段后间距为0.AutoAdjustRightIndent = True '自动调整段落的右缩进.DisableLineHeightGrid = False '勾选“如果定义了文档网格,则对齐网格”,即指定段落中的字符与行网格对齐.FarEastLineBreakControl = True '将东亚语言文字的换行规则应用于指定的段落.WordWrap = True '在指定段落或文本框的西文单词中间断字换行.HangingPunctuation = True '指定段落中的标点将可以溢出边界.HalfWidthPunctuationOnTopOfLine = False.AddSpaceBetweenFarEastAndAlpha = True '自动在指定段落的中文文字和拉丁文字之间添加空格。
vba窗体随计算机屏幕大小而大小vba窗体随计算机屏幕大小而大小要想vba窗体随计算机屏幕大小而改变大小思路是:1.将Excel最大化,因为vba窗体的应用程序是application,2.画出窗体的大小与应用程序相同大小3.窗体的画法是movePrivate Sub UserForm_Initialize()With Application.WindowState = xlMaximized 'EXCEL最大化Me.StartUpPosition = 0 '本窗体改为手动Me.Move 0, 0, .Width, .HeightEnd WithEnd SubMove 方法移动一个窗体或控件,或者移动Controls 集合中的所有控件。
语法对于窗体或控件object.Move( [Left [, Top [, Width [, Height [, Layout]]]]])对于 Controls 集合object.Move( X, Y)Move 方法的语法有以下几个成分:成分描述object必需。
有效对象名。
Left可选。
单精度值,以磅为单位,表示对象左边缘的横坐标。
Top可选。
单精度值,以磅为单位,表示对象上边缘的纵坐标。
Width可选。
单精度值,以磅为单位,表示对象的宽度。
Height可选。
单精度值,以磅为单位,表示对象的高度。
Layout可选。
布尔量,表示在这次移动之后控件的父对象是否初始化Layout 事件。
其默认值为False。
X, Y必需。
单精度值,以磅为单位,指定了Controls 集合中每个控件的当前水平和垂直位置的变化量。
设置Left、Top、Width、Height、X和Y参数的最大值和最小值,随应用程序的不同而不同。
说明对于窗体和控件,可将一个选定对象移动到相对于该对象所在窗体的边缘的特定的地方。
可以利用命名的参数,或者可以输入位置参数。
如果用命名的参数,可以用任意的次序列出这些参数;如果不用命名参数,必须按上面语法成分给出的顺序输入这些参数,用逗号来标识未指定的参数的相对位置。
WordVBA---ActiveX控件在Word文档中的使用方法当您想要提供一种完善的方式让用户与宏直接进行交互、而不受对话框干扰的时候,可以向文档直接添加ActiveX控件,这如同可以向自定义对话框添加ActiveX控件一样。
使用以下过程可以将ActiveX控件添加到您的文档。
1、向文档中添加控件您可以向文档的图形层或文本图层添加ActiveX控件。
★向图形层添加控件:单击控件工具箱上的控件。
拖动控件的调整控点,直到控件的轮廓大小和形状符合要求。
★向文本层添加控件:请在按住SHIFT键的同时单击控件工具箱上的控件。
该控件将自动添加到文档中的插入点。
注释:将一个控件(或一组控件)从窗体拖回"控件工具箱",即可创建一个可重复使用的该控件的模板。
这是一个非常有用的功能,能为用户实现标准的应用程序界面。
2、设置控件属性在设计阶段(宏运行之前)可以设置一些ActiveX控件的属性。
在设计模式中,右键单击一个控件并单击右键菜单中的"属性"以显示"属性"窗口。
属性名称显示在窗口的左栏,而属性值显示在右栏。
可在属性名称的右边输入新值来设置该属性的值。
3、初始化控件属性您可以通过在宏中使用Visual Basic代码在运行时初始化ActiveX控件。
例如,您可在其中填充列表框中,设置文本值或设置选项按钮。
以下示例使用Visual Basic的AddItem方法将数据添至名为lstRegions的列表框,然后设置文本框的值并显示窗体。
Private Sub GetUserName()With UserForm1.lstRegions.AddItem"North".lstRegions.AddItem"South".lstRegions.AddItem"East".lstRegions.AddItem"West".txtSalesPersonID.Text="00000".Show'...End WithEnd Sub也可使用窗体的Visual Basic Initialize事件中的代码为窗体上的控件设置初始值。