欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 关于VBA的混合编程,使用VB6.0做 ActiveX Dll

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3413人关注过本帖平板打印复制链接

主题:关于VBA的混合编程,使用VB6.0做 ActiveX Dll

帅哥哟,离线,有人找我吗?
zyyh
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:52 积分:0 威望:0 精华:0 注册:2016/5/12 15:35:50
关于VBA的混合编程,使用VB6.0做 ActiveX Dll  发帖心情 Post By:2016/5/16 15:11:50 [只看该作者]

一直不大明白为嘛论坛上 没用VB6.0混合编程的对象,真的很简单很简单
VB6.0 做ActiveX dll 是非常非常简单的。以下是举例对象
打开VB.6.0  新建工程--选择 ActiveX dll,进入里面后
第一处修改 :主菜单的工程-属性-工程名称  把 工程1 改为 烛影摇红
第二处修改:在工程视图里面 选中 类模块-class1 ,将 Class1  改名为 类
添加 以下代码,粘贴复制就好了

Public Function huoqu_shuzu1(数组 As Variant, ByRef 传出数组 As Variant) As Boolean
  ReDim 传出数组(UBound(数组))
  For a = 0 To UBound(数组)
    传出数组(a) = 数组(a) + 1
  Next
  huoqu_shuzu1 = True
End Function

'计算5均线
Public Function jisuanjunxian5(ByVal jia1 As Single, ByVal jia2 As Single, ByVal jia3 As Single, ByVal jia4 As Single, ByVal jia5 As Single) As Single
   jisuanjunxian5 = (jia1 + jia2 + jia3 + jia4 + jia5) / 5
End Function

然后  在主菜单中 文件 --生成烛影摇红    记住生成的位置  

下一步 就在这个位置里面  找到生成的 烛影摇红.dll    在win7下 直接双击 就可以注册  在别的系统 要手动 注册,
注册方法  在开始菜单底下 运行 regsvr32  D:\烛影摇红.dll   就好了

切换到金字塔 到  与公式新建  这个页面的底下 有个 公式  这两个字,与它相同的  还有高级,选中 高级 --模块- Function
停止  运行 Function  就是上面的 那个 方块点下就好了 
'复制 粘贴以下代码
Sub test4()
    Dim zyyh '创建一个变量
Set zyyh = CreateObject("烛影摇红.类")'记住 烛影摇红 和 类  这两个词  是上面修改的
dim a()
dim b()
redim a(2)
redim b(2)
a(0)=23
a(1)=34
a(2)=45
msgbox zyyh.huoqu_shuzu1(a,B)
        msgbox UBound(b)
        msgbox zyyh.jisuanjunxian5(1,2,3,4,5)
End Sub

然后 在金字塔的主菜单-运行-宏 输入名称 test4
好了  一切OK  无论传入数组 还是传出数组  传递参数 和传出参数 都有了。
语言和VBA基本上一样,但是VB6.0 却远远比 VBA灵活的多。

版主评定:好评,获得40个金币奖励好评,获得40个金币奖励
(理由:奖励)
 回到顶部