版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
如何运用vba绘制游标卡尺
游标卡尺作为基本测量工具之一,自然是考查的热点。物理教师在编制试卷时,最困难的就是绘制游标卡尺。很多教师就采用其他软件绘制然后以图片的形式复制到Word里,再经过缩放等操作后往往会出现模糊、变形、锯齿等现象。实际上用Word里嵌套的vba编程工具就可很准确的画出游标卡尺。下面就把笔者在实际工作中积累的一点经验介绍给大家,以供参考。一、Word的对象及坐标系运用vba画游标卡尺主要用到一个集合对象:Shapes。其方法又与Word坐标系有关系。1.Shapes集合对象Shapes集合对象是隶属于Document对象。Shapes集合对象代表文档中或者文档页眉和页脚中的所有图形。本文运用Shapes集合对象的两个方法添加形状。AddLine方法添加直线,AddTextbox方法添加文本框。2.Word的坐标系Word坐标系的坐标原点在Document对象的左上角,横向向右为x轴正方向,纵向向下为y轴正方向。量度值为磅,允许两位小数,可以满足一般用户的精度要求。二、AddLine方法和AddTextbox方法运用vba绘制游标卡尺主要就是用Shapes集合对象的这两种方法。1.AddLine方法在文档中添加一条直线。返回一个代表该直线的Shape对象,并将其添加到Shapes集合。语法:expression。AddLine(BeginX,BeginY,EndX,EndY)各参数解释:expression必需。该表达式返回一个Shapes对象。BeginXSingle类型,必需。直线起点相对于锁定标记的水平位置,以磅为单位。BeginYSingle类型,必需。直线起点相对于锁定标记的垂直位置,以磅为单位。EndXSingle类型,必需。直线终点相对于锁定标记的水平位置,以磅为单位。EndYSingle类型,必需。直线终点相对于锁定标记的垂直位置,以磅为单位。2.AddTextbox方法在文档中添加一个文本框。返回一个代表该文本框Shape对象,并将其添加到Shapes集合。语法:expression。AddTextbox(Orientation,Left,Top,Width,Height)各参数解释:expression必需。该表达式返回“应用于”列表中的一个对象。OrientationMsoTextOrientation必需。指定文本的方向。LeftSingle类型,必需。文本框左侧边缘的位置,以磅为单位。TopSingle类型,必需。文本框上部边缘的位置,以磅为单位。WidthSingle类型,必需。文本框的宽度,以磅为单位。HeightSingle类型,必需。文本框的高度,以磅为单位。提示:在编写vba代码时,要充分利用好vba的帮助。三、算法及主程序以10格游标卡尺为例进行算法说明,20格、50格游标卡尺算法类似。ybcgs=10′游标尺格数。l=TextBoxl.Text′通过文本框获取需要绘制游标卡尺的读数值,以mm单位。zcl=Int(l)′需要绘制游标卡尺的读数值的整数部分,主尺上的第一条刻度是zcl-3。zczxfd=10′主尺最小分度的屏幕长度,以磅为单位。相当于游标卡尺主尺的最小分度1mm。zkds=7+ybcgs′主尺总刻度数。zccd=80+ybcgs*zczxfd′主尺总长度(磅)。Ifzcl<6Then′通过以下算法返回主尺整厘米刻度值的第1个刻度值。bzckd=Round((zcl/10),0)Elsebzckd=Round((zcl/10)+0.1,0)EndIfybzxfd=zczxfd*(1-(1/ybcgs))′游标卡尺最小分度的屏幕长度(磅)。SetdocActive=ActiveDocumentdocActive.Shapes.AddLine(80,180,80+zccd,180).Select′画主尺横线。再利用line的属性设置直线的格式(代码略)。Fori=1Tozkds′画主尺刻度线。If(zcl-4+i)/10=bzckdThendocActive.Shapes.AddLine(80+zczxfd*i,172,80+zczxfd*i,180).Select′画整数厘米刻度线。docAcfive.Shapes.AddTextbox(msoTextOrientationHorizontal,80+zczxfd*i-2,162,8,10).Select′在整数厘米刻度线位置添加一个文本框。再利用TextFrame属性设置文本框的格式(代码略)。Selection.TypeTextText:=bzckd′写整数厘米刻度值。bzckd=bzckd+1′ElseIfl<6Andi=1Then′读数值小于6mm,主尺的第一个刻度线为零值。docActive.Shapes.AddLine(80+zczxfd*i,172,80+zczxfd*i,180).Select′画整数厘米刻度线docActive.Shapes.AddTextbox(msoTextOrientationHorizontal,80+zczxfd*i-2,162,8,10).Select′在整数厘米刻度线位置添加一个文本框。再利用TextFrame属性设置文本框的格式(代码略)。Selection.TypeTextText=bzckd′写整数厘米刻度值bzckd=bzckd+1′刻度值加1,返回下一个整厘米刻度值。zcl=3′因为一般主尺的第一条刻度线是zcl-3,而读数值小于6mm的第一条刻度线是零,故要给zcl重新赋值,根据算法推算为zcl=3。ElsedocActive.Shapes.AddLine(80+zczxfd*i,175,80+zczxfd*i,180).Select′画主尺刻度线。EndIfNext′画游标尺刻度线n=0If1<6Then′通过以下算法返回游标尺零刻度线的位置。ybl=zczxfd*(l+1)Elseybl=zczxfd*(l-Int(l)+4)EndIfForII=0Toybcgs′画游标尺的刻度线。IfII=5*nThen′每5格标一个格数值n=n+1docActive.Shapes.AddLine(80+ybl+ybzxfd*II,180,80+ybl+ybzxfd*II,187).SelectdocActive.Shapes.AddTextbox(msoTextOrientationHorizontal,80+ybl+ybzxfd*II-2,188,15,10).Select再利用TextFrame属性设置文本框的格式(代码略)。Selection.TypeTextText:=IIElsedocActive.Shapes.AddLine(80+ybl+ybzxtd*II,180,80+ybl+ybzxfd*II,185).SelectEndIfNextWithdocActive.Shapes′画游标尺的边框。AddLine(75+ybl,180,75+ybl,200).SelectAddLine(88+ybl+ybzxfd*ybcgs,180,88+ybl+ybzxfd*ybcgs,200).SelectAddLine(75+ybl,200,88+ybl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 财贸双机位考试试题及答案
- 2026三年级数学下册 位置与方向单元测试
- 2026五年级数学下册 观察物体应用题
- 保安服务管理三项制度
- 济宁结业考试题库及答案
- 绿化工高级工试题及答案
- 企业安全生产上墙制度
- 如何给孩子定制奖惩制度
- 科室发文章奖惩制度
- 班级量化管理奖惩制度
- 初中地理命题的原则和技巧课件
- 常用Y系列电机型号参数表
- 葫芦岛九江220千伏输变电工程环评报告
- 2022年浙江纺织服装职业技术学院单招职业适应性测试试题及答案解析
- GB/T 26514-2011互叶白千层(精)油,松油烯-4-醇型茶树(精)油
- GA/T 1028.4-2017机动车驾驶人考试系统通用技术条件第4部分:道路驾驶技能考试系统
- 除灰点检技术标准
- 04第四章-火箭导弹的气动布局
- 齐鲁医学妊娠期急腹症
- 【部编版】六年级道德与法治下册全册课件
- 年龄相关性白内障课件
评论
0/150
提交评论