转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> VB.NET程序 >> 正文
使用VBA-Excel97绘图         ★★★★

使用VBA-Excel97绘图

作者:闵涛 文章来源:闵涛的学习笔记 点击数:836 更新时间:2009/4/23 14:59:06
  ---- EXCEL97是MICROSOFT公司出版的电子表格程序,它的处理数据的功能十分强大,但再好的软件都有它的一定的局限性,为了解决EXCEL97的局限性EXCEL97/2000内置了一个宏程序编辑器,以解决更多的人的更多需要。

  ---- 在日常工作中,我们经常使用到绘图程序,如用CAD绘制图形,如果想绘制一个要求精度不是太高的图纸那么CAD就有点大材小用了,如果只是作为您的参考:比如股市走向用它看看行情,那么您完全可以使用它———VBA FOR EXCEL97/2000皆可(全称为VISUAL BASIC FOR APPLICATION以后简称VBA)。

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

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

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

  代码如下(把它放到模块中):

  这段代码是绘制一个曲线图:

Sub drawing()
 ' Liuzheng welcome you to visit my homepage
 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)
 '弹出输入对话框
 If my = Cancel Then
  Range("a1").Select
  Exit Sub
 End If
 '条件测试
 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 = "删图"
 With Selection.Characters(Start:=1, Length:=3).Font
    .Size = 22
    .Shadow = True
 End With
 '做一个删除按钮
 With ActiveSheet.Shapes.BuildFreeform(msoEditingAuto,
Range("a2").Value, Range("b2").Value)
  For i = 3 To my
  If Range("a" & i).Value = "" And Range("b" & i).Value = "" Then
    .ConvertToShape.Select
    Exit Sub
  End If
  .AddNodes msoSegmentCurve, msoEditingAuto,
      Range("a" & i).Value, Range("b" & i).Value
  Next i
  .ConvertToShape.Select
 End With
 For i = 2 To my
  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
  With Selection.Characters(Start:=1, Length:=6).Font
    .Name = "Times New Roman"
  End With
  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
 Next I
 '以上是用VBA绘图

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

'这段代码为:删除图片,并再做一个绘图按钮
Sub del_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 = "绘图"
  With Selection.Characters(Start:=1, Length:=3).Font
    .Size = 22
    .Shadow = True
  End With
  Range("B1").Select
End Sub

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



没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台