excel vba没有picturebox控件如何在窗体中画图?

BeyondSandro 2007-09-08 02:54:03
google后看到说excel vba中没有picturebox对象,不能在窗体中画图。解决方法是要么用shape对象在工作表里画好图,然后想办法复制到窗体中的image对象;要么就自己将vb里的picturebox封装成ocx,然后到excel vba里调用。

我的问题是对于第二种方法的,我用了别人提供的一个封装好的picturebox,成功的在窗体中画好了图。

现在我想能不能不封装直接引用vb的picturebox控件呢?我首先在vb中的对象浏览器中查到了picturebox控件是在vb6.olb中的,然后我的问题就是如何在excel vba中引用vb6.olb文件里的picturebox对象呢?通过regsvr32注册的方法只能添加.dll或者.ocx的控件,而declare语句是用来声明函数的,有没有用来声明对象的语句?

我发现在excel vba的IDE中的工具- >引用中可以引用vb6.olb,引用了之后可以在excel vba的对象浏览器中查到picturebox了,在代码里也可以定义picturebox对象了,但是在控件箱里还是没有,没有这个对象可以拉到窗体上。我就只在代码里定义了对象,然后试着它的line方法划线,怎么也画不出来,但也不报任何错。据说这里面有vb6的许可证的问题,但是为什么不提示任何错误呢?我该如何使用vb6的许可证呢?

谢谢大家。
...全文
2143 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
xingfuhuaer227 2011-06-10
  • 打赏
  • 举报
回复
楼主能不能给一下封装好的picture控件,我也是急需,xingfuhuaer227@163.com
logxing 2007-10-05
  • 打赏
  • 举报
回复
搂主能不能分享一下你得到的封装好的picturebox控件。我急需阿,拜托了
我的邮箱logxing521@hotmail.com
BeyondSandro 2007-09-12
  • 打赏
  • 举报
回复
谢谢myjian,还是结帖了吧。
嗷嗷叫的老马 2007-09-09
  • 打赏
  • 举报
回复
我看你还是直接使用一个窗体,设置为无边框,再在SHOW的时候指定一下主窗体为父窗体吧....

要么就直接在主窗体上画线........自己控制范围,再画个框框好看点,看起来像,就行了^_^
嗷嗷叫的老马 2007-09-09
  • 打赏
  • 举报
回复
如果是那样,那估计这里的"picturebox"只是一个接口,而不是一个对象.....

那么就不能够这样使用了
BeyondSandro 2007-09-09
  • 打赏
  • 举报
回复
是说将pb.Line (0, 0)-(80, 80), vbBlue改成userform1.Line (0, 0)-(80, 80), vbBlue?
那还要定义pb吗?而且userform没有line的方法啊,能不能具体点?多谢!
BeyondSandro 2007-09-09
  • 打赏
  • 举报
回复
请问如何直接在主窗体上画线?好像不行吧?而且其实我的要求不仅是画线,还要画圆,而且线条还会不断改变,10 ms级的。
谢谢
嗷嗷叫的老马 2007-09-09
  • 打赏
  • 举报
回复
一样的啊

语句作用对象改成窗体就行了

图片框能有多快,窗体也应该一样
嗷嗷叫的老马 2007-09-08
  • 打赏
  • 举报
回复
定义Picture对象后,要设置其Visable属性为True,还要设置坐标

有点类似于用代码加载控件一样........

试试吧
BeyondSandro 2007-09-08
  • 打赏
  • 举报
回复
我也试了,不注释掉也会报错,说是new的用法不对,可能还是因为没有picturebox吧
嗷嗷叫的老马 2007-09-08
  • 打赏
  • 举报
回复
'Set pb = New PictureBox

这可不能注释掉啊.
BeyondSandro 2007-09-08
  • 打赏
  • 举报
回复
谢谢,我用下面的代码定义了一下,现在有出错提示了:对象或者with块未定义
是不是跟许可证有关?

Private Sub UserForm_Click()

Dim pb As PictureBox

'Set pb = New PictureBox

pb.Visible = True
pb.Height = 100
pb.Width = 200
pb.Top = 5
pb.Left = 5
pb.Line (0, 0)-(80, 80), vbBlue

End Sub

2,461

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧