VBA在WORD中的应用
vba用来编写宏程序,处理文本,比如能批量修改某些符号、文字,根据设定自动设定文本、文章格式,检查文本错误等等。
还可以用宏程序查找指定文本、修改特定代码,转化为一些特定的公式字符或代号。
总之,word里的功能都可以用vba实现,而且是自动运行,不是你想像的那样手工一个个去修改。
高手可以用来做很多扩展的功能,当然是word相关的。
比如加入自己喜欢使用的图形、处理各种图片、图表、剪贴图、艺术字等等。
怎样在Word中用VBA操作表格
使用VBA操作Word表格 一、生成表格 Private Sub CreateTable(mRows As Integer, mColumns) Dim mRange As Range Set mRange = ActiveDocument.Range mRange.SetRange Start:=ActiveDocument.Range.End, End:=ActiveDocument.Range.End Set SelfGenTable = ActiveDocument.Tables.Add(Range:=mRange, NumRows:=mRows, NumColumns:=mColumns) End Sub 上面过程的作用是在活动文档的末尾插入一个mRows行,mColumns列的表格。
二、在读写表格中的单元格 写入单元格使用如下代码: TableObject.Cell(Row:=curRow, Column:=curColumn).Range.InsertAfter "文本" 上面代码的做用时在curRow行,curColumn列处插入字符“文本”。
其中TableObject为表格对象,如果使用了生成表格中的例子,那么可以用SelfGenTable来替代TableObject。
三、调整单元格对齐方式 水平对齐设置 Selection.ParagraphFormat.Alignment=水平对齐常数(具体的常数可以查看帮助文件的说明) 如何选择单元格? 选定特定单元格 TableObject.Cell(Row:=1,Column:=1).Select'选定单元格1,1 选定行 TableObject.Rows(i).Select'选定第i行 选定列 TableObject.Columns(i).Select'选定第i列 选定整个表格 TableObject.Select 首先执行表格元素选择程序,然后再使用Selection.ParagraphFormat.Alignment设置对齐方式。
垂直对齐方式 Selection.Cells.VerticalAlignment=垂直对齐常数 也是首先选择表格元素,可以使单个单元格,单个行、单个列或者整个表格。
似乎也可以同时选择多个单元格、多个行、多个列,有兴趣的朋友可以自行寻找答案。
四、设置表格边线类型 下面的代码对整个表格的所有边线设置成细实线: SelfGenTable.Select With Selection .Borders(wdBorderBottom).LineStyle = wdLineStyleSingle .Borders(wdBorderLeft).LineStyle = wdLineStyleSingle .Borders(wdBorderRight).LineStyle = wdLineStyleSingle .Borders(wdBorderTop).LineStyle = wdLineStyleSingle .Borders(wdBorderHorizontal).LineStyle = wdLineStyleSingle Borders(wdBorderVertical).LineStyle = wdLineStyleSingle End With 同样是对Selection进行设置,所以可以依照上面的方法对特定的单元格、行或者列的边线样式进行分别设置,这里就不再列举了。
五、调整表格尺寸 下面的代码对一个六列的表格设置宽度,宽度采用百分比宽度,从左至右的宽度百分比依次为:30,10,10,30,10,10: Dim WidthP(0 To 2) As Integer Dim j As Integer dim i as Integer WidthP(0) = 30 WidthP(1) = 10 WidthP(2) = 10 j = 0 For i = 0 To SelfGenTable.Columns.Count - 1 If j > 2 Then j = 0 End If SelfGenTable.Columns(i + 1).PreferredWidthType = wdPreferredWidthPercent SelfGenTable.Columns(i + 1).PreferredWidth = WidthP(j) j = j + 1 Next 上面的代码通过Columns的PreferredWidthType属性设置表格列宽的形式,这里选择的是百分比列宽,可以根据自己的实际情况选择其他列宽形式,然后再设置相应的数值。
表格的行高请读者以此类推(实际上我还没设置过行高,都用自动生成的就够了) =============================================== 编写操作表格的程序时需要注意,Word表格的行列起始值为1,而不是0。
=============================================== 下面是一个拆分字符串的代码,当插入表格的文本过长时,可以设定一个长度,超过这个长度就进行回车,这样保证在设定的单元格宽度内能够写下长文本。
单元格的高度会自动调整以使文本能完整的显示,这也就是我为什么没有通过代码设置单元格高度的原因。
Private Function FoldText(mLen As Integer, mStr As String) As String '折叠文字函数,mLen为折叠前的文字长度,mStr为文字的内容 Dim i As Integer Dim tmpStr(0 To 1) As String '临时字符串 If Len(mStr) > mLen Then Do While Len(mStr) > mLen tmpStr(0) = Left(mStr, mLen) mStr = Right(mStr, Len(mStr) - mLen) tmpStr(1) = tmpStr(1) + tmpStr(0) + vbCrLf Loop tmpStr(1) = tmpStr(1) + mStr Else tmpStr(1) = mStr
用VBA直接在WORD中能正常运行的方法或属性相关常量设置,在...
前期绑定的好处在于,由该绑定类库所引申出来的常数、对象、属性和方法,都可以被直接应用。
对于wdPropertyLines和wdAlignParagraphCenter这些常数,如果在前期绑定时,那么这些常数就和其对应的值一一对应了,因为在类库的内部,已经对这些常数进行了定义和赋值。
然而通过后期绑定Set wordAppl = CreateObject("Word.Application")这种方法引用的word对象,仅仅wordAppl这个实例才拥有各种属性和方法。
然而Microsoft Word 11.0 Object Library这个类库所包含的word.application仅仅只是其中的一个对象,wdPropertyLines和wdAlignParagraphCenter在这个类库中,但并不一定在word.application这个对象中。
而且,你的excel因为没有引用Microsoft Word 11.0 Object Library,所以计算机就不能识别,于是产生错误。
解决办法,你打开一个Word文档,然后在Word中通过 :Sub xx()Msgbox wdAlignParagraphCenter '弹出值为:1MsgBox wdPropertyLines '弹出值为:23End Sub然后,你在Excel中,使用如下代码:.ParagraphFormat.Alignment = 1 '1 = wdAlignParagraphCenterwdLines =.BuiltInDocumentProperties(23) '23 = wdPropertyLines你可以一试,希望能够正确,并对你有帮助!!
word中用vba画圆的操作步骤和代码
VBA教程 - Word VBA参考教程 - Delete方法Word VBA教程:Delete方法应用于 Cell 和 Cells对象的 Delete方法。
删除一个或多个表格单元格并可选择控制如何移动剩余的单元格。
expression.Delete(ShiftCells)expression 必需。
该表达式返回以上一个对象。
ShiftCells Variant 类型,可选。
剩余单元格移动的方向。
可以是任意WdDeleteCells 常量。
如果忽略,最后删除的单元格的右侧单元格向左移动。
应用于 Range 和 Selection对象的 Delete方法。
删除指定数目的字符或单词。
此方法返回一个 Long 值,该数值表明删除项的数目。
如果删除失败,则返回的值为 0(零)。
expression.Delete(Unit, Count)expression 必需。
该表达式返回以上一个对象。
Unit Variant 类型,可选。
所需删除的折叠区域或选定内容的单位。
可以是下列 WdUnits 常量之一:wdCharacter(默认值)或 wdWord。
Count Variant 类型,可选。
所需删除的单元的数目。
若要删除某区域或选定内容之后的单元,请折叠该区域或选定内容并将此参数设置为正数;若要删除某区域或选定内容之前的单元,请折叠该区域或选定内容并将此参数设置为负数。
应用于 ShapeNodes对象的 Delete方法。
删除指定的对象。
expression.Delete(Index)expression 必需。
该表达式返回一个ShapeNodes对象。
Index Long 类型,必需。
要删除的图形节点的数目。
应用于“应用于”列表中所有其他对象的 Delete方法。
删除指定的对象。
expression.Deleteexpression 必需。
该表达式返回“应用于”列表中的一个对象。
http://www.33dir.com/z/2016/08/04/2957.html
vba是什么
VBA是什么 直到90年代早期,使应用程序自动化还是充满挑战性的领域.对每个需要自动化的应用程序,人们不得不学习一种不同的自动化语言.例如:可以用EXCEL的宏语言来使EXCEL自动化,使用WORD BASIC使WORD自动化,等等.微软决定让它开发出来的应用程序共享一种通用的自动化语言--------Visual Basic For Application(VBA),可以认为VBA是非常流行的应用程序开发语言VISUAL BASIC 的子集.实际上VBA是寄生于VB应用程序的版本.VBA和VB的区别包括如下几个方面: 1. VB是设计用于创建标准的应用程序,而VBA是使已有的应用程序(EXCEL等)自动化 2. VB具有自己的开发环境,而VBA必须寄生于已有的应用程序. 3. 要运行VB开发的应用程序,用户不必安装VB,因为VB开发出的应用程序是可执行文件(*.EXE),而VBA开发的程序必须依赖于它的父应用程序,例如EXCEL. 尽管存在这些不同,VBA和VB在结构上仍然十分相似.事实上,如果你已经了解了VB,会发现学习VBA非常快.相应的,学完VBA会给学习VB打下坚实的基础.而且,当学会在EXCEL中用VBA创建解决方案后,即已具备在WORD ACCESS OUTLOOK FOXPRO PROWERPOINT 中用VBA创建解决方案的大部分知识. * VBA一个关键特征是你所学的知识在微软的一些产品中可以相互转化. * VBA可以称作EXCEL的“遥控器”. VBA究竟是什么?更确切地讲,它是一种自动化语言,它可以使常用的程序自动化,可以创建自定义的解决方案. 此外,如果你愿意,还可以将EXCEL用做开发平台实现应用程序. Office取得巨大成功的一个重要原因就是VBA,使用VBA可以完成很多事情,基于Excel、Word的VBA小程序不计其数。
VBA程序员很多是业余程序员,正因为业余,解决的却是工作中需要解决的问题;所以,VBA程序大多都是只是在部门内部或个人使用的小工具。
集成了VBA的其他应用程序也很多,但真正能为程序增色的不多。
大多数人看到了VBA可以自动化一个程序,可以扩展已有程序,但没有看到在Office中,VBA代码可以是录制的,而不是写出来的,带来的好处是,学习曲线变得非常缓。
如果没有宏录制功能,要熟悉某个Office组件的对象模型,绝非一日之功。
以ArcGIS为例,ArcGIS扩展必须使用ArcObject,不管是使用VBA也罢,VB也罢,还是C++也罢。
但同时,ArcObject的学习不是一天两天可以搞定,对于业余程序员,要使用VBA来扩展ArcGIS,几乎没有可能;专业程序员又不屑使用VBA;而对于公司,如果要基于ArcObject来扩展ArcGIS,选择VBA意味着源码的保护很困难。
所以,ArcGIS的VBA就如同鸡肋。
不过,学习AO的时候,使用VBA比使用其他语言要容易一些,写几行代码,然后直接运行测试结果,这种交互式的学习应该是最好的学习方法。
ArcGIS以及AO与Office相比,还有一个很大的差别,就是ArcGIS缺乏中等粒度的对象,例如Word和Excel的Range对象。
对于Office开发,可以在对底层小粒度对象一无所知的状况下做很多事情,这就是抽象的力量。
常人可以处理的复杂度是有限的,面对数十个对象和几百个对象,后者需要付出的努力不是10倍,而是数十倍或更多,因为在学习过程中,必须可以把这些对象在大脑中很好的组织,以控制其复杂度。
Visual Basic for Applications(简称VBA)是新一代标准宏语言,是基于Visual Basic for Windows 发展而来的。
它与传统的宏语言不同,传统的宏语言不具有高级语言的特征,没有面向对象的程序设计概念和方法。
而VBA 提供了面向对象的程序设计方法,提供了相当完整的程序设计语言。
VBA 易于学习掌握,可以使用宏记录器记录用户的各种操作并将其转换为VBA 程序代码。
这样用户可以容易地将日常工作转换为VBA 程序代码,使工作自动化。
因此,对于在工作中需要经常使用Office 套装软件的用户,学用VBA 有助于使工作自动化,提高工作效率。
另外,由于VBA 可以直接应用Office 套装软件的各项强大功能,所以对于程序设计人员的程序设计和开发更加方便快捷。
编辑本段VBA 基础 Visual Basic 的应用程序版(VBA)是Microsoft 公司长期追求的目标,使可编程应用软件得到完美的实现,它作为一种通用的宏语言可被所有的Microsoft 可编程应用软件所共享。
在没有VBA 以前,一些应用软件如Excel、Word、Access、Project 等都采用自己的宏语言供用户开发使用,但每种宏语言都是独立的,需要用户专门去学习,它们之间互不兼容,使得应用软件之间不能在程序上互联。
拥有一种可跨越多个应用软件,使各应用软件产品具有高效、灵活且一致性的开发工具是至关重要的。
VBA 作为一种新一代的标准宏语言,具有上述跨越多种应用软件并且具有控制应用软件对象的能力,使得程序设计人员仅需学习一种统一的标准宏语言,就可以转换到特定的应用软件上去,程序设计人员在编程和调试代码时所看到的是相同的用户界面,而且VBA 与原应用软件的宏语言相兼容,以保障用户在代码和工作上的投资。
有了VBA 以后,多种应用程序共用一种宏语言,节省了程序人员的学习时间,提高了不同应用软件间的相...
转载请注明出处51数据库 » word中vba使用方法