手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>程序设计>C/C++>列表

使用vba-excel97绘图_visualbasic教程

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
----EXCEL97是MICROSOFT公司出版的电子表格程式,他的处理数据的功能十分强大,但再好的软件都有他的一定的局限性,为了解决EXCEL97的局限性EXCEL97/2000内置了一个宏程式编辑器(如下图),以解决更多的人的更多需要。

----在日常工作中,我们经常使用到绘图程式,如用CAD绘制图像,假如想绘制一个需要精度不是太高的图纸那么CAD就有点大材小用了,假如只是作为您的参考:比如股市走向用他看看行情,那么您完万能够使用他———VBAFOREXCEL97/2000皆可(全称为VISUALBASICFORAPPLICATION以后简称VBA)。

----一个网民曾问过我:假如:给出X和Y轴能不能让EXCEL97的宏程式也划出一个曲线图呢?而不用EXCEL97的图表功能?

----为此我考虑使用EXCEL97中的SHAPE对象来编写这个程式,经过我的一天努力终于搞出了一段VBA程式,使用起来也十分方便!我想假如您认为能够近一步扩展,您还能够沿着我的思路,近一步深化编写,编写出一个自己满意的小程式!在启动EXCEL97时别忘记“启用宏”,否则无法运行!界面如上图.

----点击绘图按钮后,弹出对话框提示输入延伸的行数!(假如输入大于对话框中的值时将只得到曲线图没有数值)如下图(略)

----绘制的图像如下(略):(并出现一个删图按钮,是删除图片用的!点击一下就能够删除您的曲线图了)

代码如下(把他放到模块中):
这段代码是绘制一个曲线图:
Subdrawing()
Liuzhengwelcomeyoutovisitmyhomepage
http://grwy.online.ha.cn/vba_excel97/
  Range("a1").Select
  Selection.CurrentRegion.Select
myrow=Selection.Rows.Count
计算行数
my=Application.InputBox("输入延伸的行数。"
&Chr(13)&Chr(13)&"提示:假如输入"
&myrow 1&",将只绘制线条"&Chr(13)
&Chr(13)&"(没有数值!)",
"用VBA绘图",Default:=myrow)
弹出输入对话框
  Ifmy=CancelThen
  Range("a1").Select
  ExitSub
EndIf
条件测试
  ActiveSheet.Shapes.SelectAll
Selection.Delete
删除任何的SHAPES
  ActiveSheet.Buttons.Add(245.25,34.5,102,36).Select
  b=Selection.Name
  Selection.OnAction="del_shapes"
  ActiveSheet.Shapes(b).Select
  Selection.Characters.Text="删图"
  WithSelection.Characters(Start:=1,Length:=3).Font
    .Size=22
    .Shadow=True
EndWith
做一个删除按钮
  WithActiveSheet.Shapes.BuildFreeform(msoEditingAuto,
Range("a2").Value,Range("b2").Value)
    Fori=3Tomy
    IfRange("a"&i).Value=""
AndRange("b"&i).Value=""Then
    .ConvertToShape.Select
    ExitSub
    EndIf
    .AddNodesmsoSegmentCurve,msoEditingAuto,
Range("a"&i).Value,Range("b"&i).Value
    Nexti
    .ConvertToShape.Select
  EndWith
Fori=2Tomy
a=Range("a"&i).Value
b=Range("b"&i).Value
  ActiveSheet.Shapes.AddShape(msoShapeRectangle,
a,b,48.75,21).Select
  Selection.Characters.Text=a&","&b
  WithSelection.Characters(Start:=1,Length:=6).Font
    .Name="TimesNewRoman"
  EndWith
  Selection.HorizontalAlignment=xlCenter
  Selection.ShapeRange.Fill.Visible=msoFalse
  Selection.ShapeRange.Fill.Transparency=0#
  Selection.ShapeRange.Line.Transparency=0#
  Selection.ShapeRange.Line.Visible=msoFalse
  ActiveSheet.Shapes.AddShape(msoShapeOval,a,b,1.5,1.5).Select
  Selection.ShapeRange.Fill.ForeColor.SchemeColor=5
NextI
以上是用VBA绘图

MsgBox"欢迎参观我的个人主页
http://grwy.online.ha.cn/vba_excel97/或
http://202.102.233.10/64215258/",vbInformation,"用VBA绘图"
  Range("B1").Select
EndSub

这段代码为:删除图片,并再做一个绘图按钮
Subdel_shapes()
  ActiveSheet.Shapes.SelectAll
  Selection.Delete
  Application.ScreenUpdating=False
  ActiveSheet.Buttons.Add(245.25,34.5,102,36).Select
  b=Selection.Name
  Selection.OnAction="drawing"
  ActiveSheet.Shapes(b).Select
  Selection.Characters.Text="绘图"
  WithSelection.Characters(Start:=1,Length:=3).Font
    .Size=22
    .Shadow=True
  EndWith
  Range("B1").Select
EndSub

----以上程式在EXCEL97和2000中调试通过!
----注意在启动EXCEL97时别忘记“启用宏”,否则无法运行!->


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!