ImageVerifierCode 换一换
格式:DOC , 页数:20 ,大小:143KB ,
资源ID:4485015      下载积分:5 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4485015.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(用VB在AutoCADR14中写TEXT的方法.doc)为本站上传会员【二***】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

用VB在AutoCADR14中写TEXT的方法.doc

1、用 VB 在 AutoCAD R14 中写 TEXT 的方法 AutoCAD 可以写不同高宽比、不同角度、不同颜色的 TEXT。无论是用 AutoCAD 的 TEXT 命令,还是用 AutoLISP,都是很容易做到的,用 VB 是否也很容易哪?我们 来看下面一段示例: Public objAcad As Object Public objDoc As Object Dim ent As Object Dim startPoint(0 To 2) As Double Dim Point1(0 To 2) As Double Set objAcad = GetObje

2、ct(, "AutoCAD.Application") ' 获得AutoCAD R14对象 Set objDoc = objAcad.ActiveDocument ' 初始化 TEXT 的起点 startPoint(0) = 10# startPoint(1) = 10# startPoint(2) = 0# ' 写一串 TEXT, 其中字高为 5 Set ent = objDoc.ModelSpace.AddText("textString", startPoint, 5#) ' 初始化 TEXT 的调整点 Point1(0) = 20# Point1(1) = 1

3、0# Point1(2) = 0# With ent .Color = 1 ' 改用红色 .ObliqueAngle = 0.174444 ' 改倾斜角度 .VerticalAlignment = 0 ' 设垂直位置为 0 .ScaleFactor = 1# ' 设文字高宽比,当需要两端对齐时,必须任意给一个值 .HorizontalAlignment = 5 ' 设文字为两端对齐 .TextAlignmentPoint = Point1 ' 设对齐点 End With Se

4、t objAcad = Nothing a VB应用程序中用DDE功能开发AutoCAD for Windows 目前,许多工程CAD系统是以AutoCAD作为支撑软件,在其基础上进行二次开发而形成的。AutoCAD R12 for Windows 以AutoLISP和ADS作为二次开发工具,但它们都有不足之处,AutoLISP速度慢,没有友好的开发环境,ADS是基于C语言的开发环境,而C语言面向Windows编程本身难以掌握,因此AutoLISP和ADS的使用都受到一定的限制。VB是Windows下主要的开发工具之一,它的“可视性”和“事件驱动性”简化了面向Windows的编程,深受广大

5、用户的青睐。Windows下,VB和AutoCAD都支持强有力的DDE(动态数据交换)功能,用VB编写具有DDE功能的程序来控制AutoCAD,既能与AutoCAD交换各种复杂的数据结构,又能向AutoCAD发送命令,由此开发出的应用程序能满足用户的需要,同时又缩短了开发周期。本文结合实例介绍了用VB开发AutoCAD的途径与方法。 一、直接利用DDE功能开发   DDE是Windows的强大功能之一,它可以使应用程序自动地接收由其它应用程序发送来的数据,当传送端的数据有变化时,接收端的数据也会随之改变,也可将命令或键盘输入传递给其它程序,实现远程控制。   在VB编程环境中,创建应

6、用程序的方法很简单,首先是设计用户界面,也就是在空白窗体中放入所需要的控件,如命令按钮,单选钮,文本框,标签,图片框等,然后针对各控件上要发生的事件(如鼠标单击,鼠标移动等)书写事件过程,最后将编写的应用程序运行,调试,生成执行文件即可。VB中能和其它Window应用程序建立DDE通道的控件有文本框,标签和图片框。下面结合简单实例,说明VB应用程序与AutoCAD间建立DDE通道和交换数据的方法。   在VB中启动一个新项目,参见图(1)建立窗体,其中“建立链接”,“直线”,“标注”,“退出”为命令按钮,标有“Text1”的为文本框,用于建立DDE通道,并输入下面的事件代码。  Opti

7、on Explicit  Private Sub cmdLine_Click() '画直线   Text1.LinkExecute " [^3^3line 3,3 8,8 ^3]"  End Sub  Private Sub cmdText_Click() '标注文字   Text1.LinkExecute " [^3^3text 10,10 1 90 AUTOCAD!^10]"  End Sub  Private Sub cmdLink_click() '建立链接   Text1.LinkMode = 0   Text1.LinkTopic = "autocad.dde|s

8、ystem"   Text1.LinkMode = 2  End Sub  Private Sub cmdExit_click() '退出   End  End Sub   运行此应用程序,注意在运行前,一定要先加载AutoCAD。单击“建立链接”按扭,cmdLink_Click()过程被执行,执行时设置文本框Text1的LinkTopic和LinkMode的属性,完成VB应用程序与AutoCAD间DDE通道的建立。LinkTopic属性用于通知AutoCAD由谁来提供数据,它被管道符“|”分成两部分,第一部分“AutoCAD.DDE”为应用程序名,第二部分“System”是通讯

9、的主题。LinkMode属性用于切实建立链接,在LinkMode=0时,表示关闭以前的DDE通道,在LinkMode=2时,表示以手动模式激活DDE通道。   在完成DDE链接后,VB应用程序就可以与AutoCAD间进行数据交换或命令传送了。单击“直线”按扭,cmdLine_Click()过程被执行,应用程序通过LinkExecute方法向AutoCAD发送命令,在AutoCAD中以点(3,3)和(8,8)为端心,画一条直线。语句中的^3相当于AutoCAD中的取消键Ctrl+C,空格相当于AutoCAD中的回车键。单击“标注”按扭,执行cmdText_Click()过程,可在AutoCAD

10、中显示以(10,10)为基点,高为1,旋转角度为90的字符串“AutoCAD!”。语句中的^10相当于AutoCAD中的回车键,在标注文字时不能用空格代替回车键。   根据需要,可用上面的方法传送AutoCAD的其它命令,实现对AutoCAD的开发。 二、通过调用VB ADS开发   上面介绍了在VB应用程序中直接利用DDE与AutoCAD作用实现开发的方法,此方法要求用户自己建立与AutoCAD间的DDE通道,此外,我们还可以通过调用VB ADS函数对AutoCAD进行开发。在VB ADS函数库中已有专门的函数负责建立应用程序与AutoCAD间的DDE通道,而不需用户亲自建立,较为方

11、便。另外,VB应用程序还可以通过VB ADS函数向AutoCAD发送数据和命令,同时也可以利用VB ADS函数的返回值来获得AutoCAD的数据,实现对AutoCAD更深入的开发。   为了利用AutoCAD的VB ADS函数建立VB的应用程序,AutoCAD提供了几个VB ADS支撑文件,这些文件除DDEBAS.EXE和ACADVB.DLL存放在C:\ACADWIN子目录外,其余都存放在C:\ACADWIN\VB\NEW子目录中。文件如下:   1. DDEBAS.EXE-ADS/DDE服务者,为保证VB于AutoCAD 间正常通信,此命令必须首先在AutoCAD中用XLOAD命令加载运

12、行。   2. ACADVB.DLL-VB ADS动态连接库,在运行VB应用程序前,应将其拷到C:\WINDOWS\SYSTEM\子目录下。   3. GLOBAL.BAS-VB ADS应用程序中所需要使用的全局变量定义文件。   4. ADSFUNCS.BAS-VB ADS函数库,可以在VB应用程序中直接调用。   5. ADSFUNCS.FRM-包含有应用程序和AutoCAD间建立DDE链接的窗体文件。 下面结合具体的例子,说明利用VB ADS函数开发应用程序的方法。 [HJ]     启动VB,打开C:\ACADWIN\VB\NEW\NEWPROJ.MAK项目文件,参见图 [2]

13、建立新窗体,并输入如下的事件代码。  Option Explicit  Private Sub Form_Load()   DDE_TIMEOUT = -1  '等待DDE事件   txtX.Text = 5  '圆心,半径的隐含值   txtY.Text = 5   txtRadius = 3  End Sub  Private Sub cmdCircle_Click()  '画圆过程   Dim ret As Integer   Dim pt As ads_point  '定义Ads点类型   Dim Radius As Double   Dim Apndll A

14、s ApndLLType  '定义增加链表类型   Dim Resbuf As ResbufType  '定义结果缓冲器   pt.X = val(Trim(txtX.Text)) '给圆心,半径赋值   pt.Y = val(Trim(txtY.Text))    Radius = val(Trim(txtRadius.Text))   ret% = ads_newrb(10, Resbuf) '建立新的结果缓冲器   Resbuf.hResbuf = 0   Apndll.apType = RTSTR '说明链表类型为字符串   Apndll.apString = "ci

15、rcle" + Chr$(0) '链表赋值   ret% = ApndLLNode(Resbuf, Apndll)  '增加链表到结果缓冲器   Apndll.apType = RTPOINT   Apndll.apPoint = pt   ret% = ApndLLNode(Resbuf, Apndll)   Apndll.apType = RTREAL   Apndll.apReal = Radius   ret% = ApndLLNode(Resbuf, Apndll)   Apndll.apType = RTNONE   '链表结束值类型   ret% = Apnd

16、LLNode(Resbuf, Apndll)   ret% = ads_cmd(Resbuf)   '执行结果缓冲器的命令   ret% = ads_relrb(Resbuf)   '释放结果缓冲器   End Sub Private Sub cmdExit_Click()   '退出过程   End  End Sub   在应用程序运行前,必须首先运行AutoCAD,并用命令(XLOAD "DDEBAS")加载DDEBAS. EXE。在上面的应用程序中,除语句DDE_TimeOut=-1外,没有其它涉及建立DDE通道的语句,因为应用程序与AutoCAD间建立DDE通道所需要的代

17、码已保存在VB ADS 函数库中,打开支撑文件adsfuncs.bas,可以发现Sub OPENDDE()过程,它负责VB应用程序与AutoCAD间DDE通道的建立,所以用户在开发应用程序时,只管调用VB ADS函数即可。例子中的cmdCircle_Click()过程,是在VB 4.0编程环境通过调用VB ADS函数开发的,运行程序后在文本框中输入半径和圆心的值,单击“画图”按扭,即可在AutoCAD中得到所需的圆。 c VB应用程序编制实例 VB自1991年问世以来,已从1.0版步入到功能十分强大的5.0版。VB以其开发软件周期短、操作简单、可视化程度高的优点倍受编程人员的青睐。

18、近几年来,许多Windows程序员应用VB作为编程语言,开发了大量的应用软件。本文通过几个实例说明了VB的强大功能。 一、工具棒的建立方法 Windows应用程序的操作界面都含有大量的图标,这些图标集中放在某一个区域形成工具棒(Toolbars), 工具棒中的图标用图示的方法表示某一种功能,可以加速操作,在某些Windows应用程序中还把这些工具棒直接称为加速棒(Speedbars)。下面介绍编制工具棒的方法。 在窗体上画一个足够大的图片框,使用这个图片框可以存放图标。设置图片框的Align属性,使图片框列在窗口的顶部,即[窗体名][控件名]Align=1. 在

19、图片框中增加影像控件(Image Control)数组或者三维命令控制按钮数组(3D Command Button Control)。改变控件的Picture属性,输入图形,图形的格式为:*.BMP,*.DIB,*.WMF,*.ICO。 下面的实例介绍了工具棒的建立方法,具体步骤为: 1.建立一个图片框,取名为Demo(即Name属性为Demo),设置Align属性,即 Demo.Align=1 2.在图片框上增加三维命令按钮,设置Name属性为Tool,设置Index的属性为0(第一个控件),改变 Picture 属性,输入图示化的图形(文件)。改变提示信息,设

20、置Caption取值为空。 3.增加三维命令按钮控件,设置Name属性为Tool,注意使Index属性分别为1,2,……。 4.建立窗体Paint事件过程 Sub FormPaint() Demo.ScaleHeight = Tool(0).Height '设置工具棒的高度 iw% = Tool(0).Width '获取第一个图标的宽度,用于设置其他的图标宽度 For i% = 0 To 3 Tool(i%).Height = Demo.Scaleheiht Tool(i%).Width = iw% Tool(i%).AutoSize = 1 '设置图标中的图

21、形充满整个图形框 Tool(i%).Move iw% * i%, 0 '重新排列所有图标的位置 Next i% End Sub 5.建立图标事件过程 为工具棒中的每一个图标增加一个过程,执行相应的命令: Sub Tool_Click(index As Integer) If index = 0 Then Tool (0). Picture = Load(″animal.bmp″) '更换第一个图标中图像 ElseIf index = 1 Then j% = Shell(″calc.exe″, 1) '执行WINDOWS95计算重新CALC.EXE Else

22、If index = 2 Then End '中止程序的执行 End If End Sub 在实际应用中,程序员可以发挥自己的想象力,从而完善工具棒的功能。 AutoCAD中表格自动化   工程图纸中经常遇到大量表格填写,例如工程勘察中的成果表、设计的材料表,在AutoCAD中文字处理比较差,用TEXT、DTEXT命令在表格中定位也不方便,填写的表格既不美观,还容易出错。在一些杂志中有关表格填写程序介绍,但是使用不方便,也不能连续填写多个表格,长距离线路勘察中线转点少则几十个,多则上千,中线数据可由计算直接生成,能否利用中线数据直接填表出图。   利用AutoCAD二次开发,编写中

23、线成果填写程序(zxcg.lsp),改变以往出图工序(填写、校对),大大提高工作效率。 一、程序功能与编写说明   1、本程序具有下列功能:   (1)直接在文本编辑器(EDIT、QE、WPS等等)编辑、修改数据,免去AutoCAD文字编辑、修改之不便;   (2)可以自动分页,自动填写工程名称、档案号、日期等等;   (3)可以自动处理中线成果数据前后的空格,例如:   “123123.123”将自动转化为“123123.123”;   (4)可以自动识别两种工程名称数据文件;   (5)文本状态下数据正确无误,出图前无需在AutoCAD中修改,调图速度和重新成图速度相差无几

24、可直接保存数据文件,节省磁盘空间。   2、程序说明:   程序利用AutoLISP的计算、判断、字符处理、循环结构以及调用Text命令等功能对读入的数据进行处理后填写,与本程序对应的Zxcg.dwg图形文件含四个表格图块,程序中的有关参数均取决于四个图块。 二、使用说明   1、关于中线成果数据格式:   (1)无曲线   第一行,总点数(N)   第二至七行,点名(NAME)、里程(K)、高程(H)、坐标X、Y、转角(B)……重复二至七行(没有数据项用空行代替)   (2)有曲线   第一行,总点数(N)   第二至十一行,点名(NAME)、里程(K)、高程(H)、坐

25、标X、Y、转角B,半径R,切线长T、曲线长L、外矢矩E……重复二至十一行(没有数据项用空行代替)   2、关于工程名称数据格式:   (1)单标题   第一行,工程名称   第二行,档案号(如测-3777/表,只需输入3777)   第三行,日期(可省略,取当前日期)   (2)双标题   第一行,工程名称大标题   第二行,工程名称小标题   第三行,档案号(如测-3777/表,只需输入3777)   第四行,日期(可省略,取当前日期) 三、加载及运行   在AutoCADR12(或AutoCADforWindows)中,把Zxcg.lsp和Zxcg.dwg拷贝到SU

26、PPORT子目录下,用鼠标点文件(File)下应用程序(Applications),或在Command:下敲入Appload加载Zxcg.lsp,或在Command:下敲入(Load“Zxcg”)即可。然后在Command:下敲入ZX运行程序,本程序将中文提示。 四、结束语   该应用程序提供了两种形式的表格,有兴趣的AutoCAD用户不妨增加几种表格,修改程序中对应的参数即可。   附源程序  ...****ERROR****   (DEFUNERR(X)   ;IFANERROR(SUCHASCTRL-C)  OCCURS   ;WHILETHISCOMMANDISAC

27、TIVE   (IF(AND(/ΚX″FUNCTIONCANCELLED″)   (/ΚX″QUIT/EXITABORT″))   (PPINC(STRCAT″ιnERROR:″X)))   (SETVAR″CMDECHO″1)(SETVER″BLIPMODE″1)   (IF(ΚTYPERF)′FILE)(CLOSERF))   (IF(ΚTYPERN)′FILE)(CLOSERN))   (SETQRFNIL)(SETQRNNIL)   (SETQ*ERROR*OLDERR)   ;RESTOREOLD*ERROR*HANDLER   (PRINC))   ...*

28、***FILETOREAD****   (DEFUNINPUT()   (IF(ΚFF1nil)(SEFQFF1(GETVAR″DWGPREFIX″)))   (SETQF1(GETFILED″请输入中线成果数据文件″FF1″DAT″12))   (SETQLF(STRLENF1)FF1(SUBSTRF11(-LF4)))   (IF(ΚFF2nil)(SETQFF2FF1))   (SETQF2(GETFILED″请输入工程名称文件″FF2″TXT″12))   (SETQLF(STRLENF2)FF2(SUBSTRF21(-LF4)))   (initget″YesNo″)

29、   (setqYN(getkword″ιn请选择有曲线元素Yes/No:(N)″))   (if(ΚYNnil)(SETQYN″No″)))   ...****DATAFORPROGRAMME*****   (DEFUNDDAT()   (SETQRF(OPENF1″r″))(SETQRN(OPENF2″r″))   (SETQGN(READ-LINERN)GG1DAH(READ-LINERN))   (IF(ΚATOIDAH)0)(PROGN(SETQGG2GN2DAHDAH(READ-LINERN))))   (SETQDAT(READ-LINERN))   (IF(Κ

30、DATNIL)(PROGN(SETQDAT(GETVAR″CDATE″));取当前日期   (SETQDAT(FIXDAT))(SETQDAT(ITOADAT))   (SETQYY(SUBSTRDAT14)MM(SUBSTRDAT52))   (SETQDD(SUBSTRDAT72)DAT(STRCATYY″-″MM″-″DD))))   (SETQNO(READ-LINERF)N(ATOINO))   (SETQNF26NN29);首、次页行数   (SETQM(FIX(+(/(-NNF)NN)2))):计算页数   (SETQNL(REM(-NNF)NN))(IF(ΚNL

31、0)(SETQM(-M1)NLNN))   (IF(ΙΚNNF)PROGN(SETQM1)(SETQNLN)))   (princ″共读入″)(PRINCN)(PRINC″点,分″)(PRINCM)(PRINC″页填写!″)   (SETQYY8XX230);行距、页距   (SETQI1X00Y00DAH(STRCAT″测-″DAH″/″))   (IF(ΚYN″NO″)(SETQDI(LIST678.58103.58125.08150.08180.08208.08))   (SETQDI(LIST1071.9088.39105.58122.61140.30156.83172.8

32、6188.07208.00232.73))))   ;表格项数及各项横坐标(X)   (SETQYYF285.0YYN305.7);首、次页第一行纵坐标   ....****删除数据前后空格(QKG)******   (DEFUNQKG()   (SETQLE1)   (WHILE(〈LE(STRLENTXT))(RPOGN(SETQLF(+1LE))   (WHILE(Κ(SUBSTRTXT11)″″)(PROGN  (SETQTXT(SUBSTRTXT2(STRLENTXT)))))))   (SETQLE(STRLENTXT))   (IF(〉LE2)(WHILE(AN

33、D(Κ(SUBSTRTXTLE1)″″)(ΛLE2))   (PROGN(SETQLE(-LE1)TXT(SUBSTRTXT1LE))))))   .....*****ZXTX******   (DEFUNZXTX()   (PRINC″ιn正在填写中线成果数据,请稍候!″)   (WHILE(ΙΚIM)(PROGN(SETQPT0(LISTX0Y0))   (SETQP1(LIST(+X0236.0)348.5))(SETQP2(LIST(+X0207.0)342.0))   (SETQP3(LIST(+X0227.0)342.0))(SETQP4(LIST(+X0222.2)

34、335.6))   (IF(ΚYN″No″)(IF(ΚI1)(SETQZX″*PZX-F″)(SETQZX″*PZX-N″));图块选择   (IF(ΚI1)(SETQZX″*QZX-F″)(SETQZX″*QZX-N″)))   (COMMAND″INSERT″ZXPT0″1″″0″)   (IF(ΚI1)(PROGN(SETQP2(LIST(+X0207.0)336.0))   (SETQP3(LIST(+X0227.0)336.0))(SETQP4(LIST(+X0222.2)329.6))   (SETQP5(LIST(+X0125.1)329.5))(SETQP6(LIS

35、T(+X0185.9)329.5))   (IF(ΚGG2)(PROGN(SETQP5(LIST(+X0125.1)333.5))   (SETQP6(LIST(+X0185.9)333.5))(SETQP7(LIST(+X0135.1)323.5))   (SETQP8(LIST(+X0175.9)323.5))))   (COMMAND″TEXT″″S″″HZ″″J″″A″P5P6GN)   (COMMAND″TEXT″″J″″M″P4″2.5″″0″DAT)   (IF(ΚGG2)(COMMAND)″TEXT″″J″″A″P7P8GNZ)))) (IF(ΚI1)(SETQJ

36、NF)(SETQJNN)) 用VB5直接控制Excel 97 用VB5可编写直接控制Excel操作的程序,方法是用VB的OLE自动化技术获取Excel 97 的控制句柄,从而直接控制Excel 97的一系列操作。与用VBA语言编写的Excel控制程序相比,两者主要有如下差异:   1. 实现VB5对Excel的直接控制后,可在用户所编的程序中调用Ex cel,即从控制界面直接调入Excel,且退出Excel后又回到控制界面,使人看起来就如Excel是依附于用户程序上。这给既想获取Excel的强大支持,又想编写"傻瓜"软件交给不熟悉计算机的用户使用的程序员来说,其好处是不言而喻的。VBA

37、则必须依附于特定的Excel环境,且只有先进入确定的Excel环境后,才能运行VBA程序。   2. 用VB5实现Excel的控制后,所有程序可编译成完整的EXE执行文件,直接在Win 95 /NT平台上执行,运行环境更为简洁明了,程序更易加密。不会因为有多个程序指令块带来管理麻烦,也不易因用户的不小心使用而出现程序丢失,造成功能短缺。VBA编写的程序最大的不方便是不能编译成执行文件,不能脱离其主应用程序独立运行。   3. VBA在Excel环境中,几乎是一个万能的工具,可通过建立功能强大的宏指令来扩展或模拟Excel的全部功能。而VB的OLE自动技术目前还不能实现Excel所有功能

38、的模拟与控制。   操作步骤   用VB5控制Excel 97的操作步骤如下:   1. 引用Microsoft Excel类型库:   *从"工程"菜单中选择"引用"栏;   *选择Microsoft Excel 8.0 Object Library;   *选择"确定"。   2. 声明显式数据类型:   Dim x1 as Excel.Application   3. 创建新实例,获取Excel的控制句柄:   Set x1=CreatObject("Excel.Application")   4. 由于Excel 97启动为不可见,调用后需使

39、其显示出来:   x1.Visible=True   5. 交还Excel控制句柄:   Set x1=Nothing   同理,用此方法也可直接控制Word、Access等Microsoft Office 97的其他应用软件,享受其便利和支持。   操作程序   Private Sub Contral_Excel_97()   {   Dim x1 as Excel.Application '声明显式数据类型   Set x1=CreateObject("Excel.Application")    '创建新实例   x1.Workbooks.Ad

40、d   ’添加新工作簿   x1.Range("A1").Value=5 ’A1格赋值   x1.Range("A2").Value=8 ’A2格赋值   x1.Range("A3").Value=16 ’A3格赋值   x1.Range("A4").Value=7 ’A4格赋值   x1.Charts.Add   ’插入图形   x1.ActiveChart.ChartType=x1ColumnClustered   ’柱状图   x1.ActiveChart.SetSourceData Source:=x1.Sheets("Sheet1") .Ran

41、ge("A1:A4")   PlotBy:=x1Columns   ’图形数据来源   With x1.ActiveChart   ’图标题   .HasTitle=False  ’没有总标题   .Axes(x1Category,x1Primary).HasTitle=False   .Axes(x1Value,x1Primary).HasTitle=True   ’有Y轴标题   .Axes(x1Value,x1Primary).AxisTitle.Characters   .Text="销售电视机(台)"   End With   With

42、 x1.ActiveChart.PageSetup ’图形页面设置   .CenterHeader="&28" & ListSTNM(Combo2. ListIndex)&"逐日电视机销售"   ’标题   .CenterFooter="&12x x x 商场" ’下边落款   .RightFooter=Format(Now,"yyyy-m-d-h:n")   ’右下角显示时间   .Orientation=x1Landscape  ’打印纸页面横向   End With   x1.ActiveChart.PlotArea.Interior.ColorIndex

43、x1None   ’无背景色   x1.ActiveWindow.SelectedSheets.PrintPreview   ’打印预览   x1.Visible=True   ’显示图形   Set x1=Nothing   ’交还控制句柄   } VB中使用Word的“艺术字”工具   Word 97中的“艺术字”工具(WordArt)能创建出各种各样的文字,令人赏心悦目。如果能在VB中使用“艺术字”该有多好啊!由于有了面向对象技术中的代码重用思想,现在就可以轻松地实现这个愿望了。   代码重用主要有两种形式,即二进制代码重用与源代码重用。前者是

44、通过创建和使用对象来实现的;后者,顾名思义,是通过继承实现的,后者在C++语言中被广泛使用。由于Visual Basic不支持继承,所以在VB中的代码重用主要是指二进制代码重用,并且VB算得上是二进制代码重用的先驱。它的基本思路是:首先将待重用的代码和数据编译为二进制文件,称为ActiveX服务器部件,然后在客户应用程序里创建部件中类的对象来调用该部件。在VB中最为人们所熟悉的控件就是典型的二进制代码重用的例子,每个控件都是一个ActiveX部件,在向窗体中添加一个控件的同时就创建了该控件类的一个新实例,然后通过调用该控件的属性、方法和事件就重用了该控件中的代码。   Word 97本身就

45、是一个庞大的代码部件,也就是说,Word 97中的整个对象库是对外开放的,它允许其他应用程序对其进行编程。换句话说,Word 97中的对象能被其他应用程序所调用。而“艺术字”正是Word 97中的一种对象,因此可以方便地在VB中调用它。   要使用“艺术字”,必须先把Word 97的对象库加入到程序中,然后创建一个对象变量来保持对Word应用程序对象的引用,可以用两种方法创建对Word应用程序对象的引用,一种方法是直接声明一个Word应用程序的对象变量,例如:   Dim w As New Word.Application   这种方法称为前期绑定,它速度较快;另一种方法是声明一个

46、对象变量w,然后把用CreateObject函数创建出的Word应用程序对象赋给w,例如:   Dim w As Object   Set w=CreateObject("Word.Application")   这种方法称为后期绑定,它速度较慢。在创建了Word应用程序对象后,就可以以代码的方式像在Word中进行具体操作那样创建新文档,并在文档中加入“艺术字”。在创建好“艺术字”之后,用剪贴板将其传给窗体。在创建Word应用程序对象时,VB会在后台自动打开Word,因此,在程序结束时,应该先关闭Word,其代码如下:   w.Quit wdDoNotSaveChanges

47、   下面用一个具体的项目实例帮你轻松学习如何在VB中使用Word对象。   (1)启动Microsoft Visual Basic 5.0,选择“标准EXE”,创建一个新项目;   (2)选择“项目”菜单中的“引用”选项,显示“引用”对话框,选中"Microsoft Word 8.0 Object Library"和"Microsoft Office 8.0 Object Library"两项,单击“确定”按钮(见图1);   添加对Word对象库的引用   (3)将下列代码加入到Form1的“通用”|“声明”选项中:   Dim w As New Word.Applic

48、ation   (4)将下列代码加入到Form1的Load事件中:   Private Sub Form_Load()    w.Documents.Add.Select    w.ActiveDocument.Shapes.AddTextEffect(0,"艺术字","隶书",48#,-1,0,183.75,70.5).Select   End Sub 这里显示的字样是隶书的“艺术字”三个字,你可以根据自己的喜好来改变字体(如宋体、楷体等)以及改变字样;   (5)将下列代码加入到Form1的Click事件中:   Private Sub Form_Click

49、)    w.Selection.ShapeRange.TextEffect.PresetTextEffect = Int(Rnd(1) * 30)    w.Selection.ShapeRange.TextEffect.FontName = "隶书"    w.Selection.Copy    Picture = Clipboard.GetData()   End Sub   (6)将下列代码加入到Form1的Unload事件中:   Private Sub Form_Unload(Cancel As Integer)    w.Quit wdDoNot

50、SaveChanges    Set w = Nothing   End Sub   (7)在窗体上放置一个按钮,其Caption属性为"Exit",并在它的Click事件中处理退出:   Private Sub Command1_Click()    End   End Sub   (8)运行程序后,当鼠标在窗体上单击时,会随机地显示出一种“艺术字”字型(Word中共有30种内建“艺术字”字型),下图分别给出了隶书与宋体两种不同字体的字样为“艺术字”的几种情形。   在VB窗体中显示的Word中的“艺术字”,左面是隶书,右面是相应的宋体   同样,由这个实

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服