搜索
登录
注册
网络优化工程师招聘专栏
4G/LTE通信工程师最新职位列表
通信实习生/应届生招聘职位
MSCBSC 移动通信论坛
»
通信软件开发与发布
» 转载-用DLL封装VBA
讨论帖
资料帖
投票帖
悬赏帖
阅读:
11063
回复:
11
关注楼主
[经验]
转载-用DLL封装VBA
yaoxuanbin
银牌会员
发短消息
关注Ta
积分 3716
帖子 54
威望 11285 个
礼品券 8 个
专家指数 66
注册 2007-8-20
专业方向 网优
来自 广东
回答问题数
0
回答被采纳数
0
回答采纳率
0%
#1
大
中
小
使用道具
发表于 2008-03-26 23:34:13
只看楼主
本文用一简例来演示如何将一正常在
VBA
中运行的代码移植到
VB
制作的
DLL
中去,并介绍如何在
VBA
中进行调用。这仅仅是最初级的介绍,希望能对此内容想了解的版友们一些帮助,而已掌握该技术的
FANS
们完全可以跳过本文。
先来了解一下什么是
DLL
:
DLL
是
Dynamic Link Library
的缩写,意为动态链接库。在
Windows
中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即
DLL
文件,放置于系统中。当我们执行某一个程序时,相应的
DLL
文件就会被调用。一个应用程序可有多个
DLL
文件,一个
DLL
文件也可能被几个应用程序所共用,这样的
DLL
文件被称为共享
DLL
文件。
DLL
文件一般被存放在
C:\Windows\System
目录下。
因此,
DLL
文件可以看作是一个程序扩展函数库,成为应用软件程序的外挂接口。就象我们常在程序中用的
WINDOWS API
,就是如此,它是微软提供给程序员的函数宝库,用户只需了解函数功能与调用规则就可以拿来使用,而不用知道也不需要知道具体源码。也正因为此,现在许多
VBA
开发者在保护其代码时也多采用此法来维护其合法权益。
现在开始。假如我们要编这么一段代码:将工作表Sheet1的A1单元格的数值与B1单元格的数值相加填写到C1单元格去(嘿嘿,这是极简单的了,只是用来说明问题),在VBA模块我们可以编写这样的代码: Sub test() On Error Resume Next Dim i, j As Integer With Worksheets("Sheet1") i = .Cells(1, 1).Value j = .Cells(1, 2).Value .Cells(1, 3) = i + j End With End Sub 执行上面的宏,会发现C1单元格自动会出现A1+B1的结果了。 下面我们在VB中生成包含以上宏功能的函数(子程序)的DLL文件。打开VB,“文件”-“新建工程”-“ActiveX DLL”,此时会弹出class1模块代码窗口,将如下代码写入: Sub test() On Error Resume Next Dim i, j As Integer Dim EB Set EB = GetObject(, "Excel.Application") With EB.ActiveSheet i = .Cells(1, 1).Value j = .Cells(1, 2).Value .Cells(1, 3) = i + j End With Set EB = Nothing End Sub 在生成DLL之前,注意确保VB里"工程"---"引用"里"Microsoft Excel 9.0 Object Library"前面的勾已打上,再就是正确设定好DLL描述与名称。菜单“工程”----“工程属性”---“工程描述”,里面可以写上你的DLL功能名称或简介或版本号。“视图”---“属性”,设定名称为你在其他开发环境中欲使用的引用名称,如“Mytest”。好,现在点击菜单“文件”---“生成…dll”,会弹出路径与文件取名窗,按你的意思选择与输入好路径和即将生成的DLL文件名,按确定就会完成DLL的生成工作。 此时DLL已生成在你指定的目录下了,当前工程保不保存就随便你自己了,如果以后还想再编辑修改的话,当然得取个文件名保存好:)。生成的DLL如果正确的话,VBA中只要引用后就可正常调用了。
现在回到
EXCEL VBA
开发环境中来,先对刚生成的
DLL
进行一下引用。关于引用,可以手工引用,也可以用代码来做。手工引用的步骤是:在
VBE
窗口中,菜单“工具”
---
“引用”,会弹出如下窗口:
刚才生成的
DLL
,选择打勾确定即可。代码引用:
Shell "regsvr32 /s " & "…………..dll", vbHide
,加
s
参数是防止出现确认窗口,影响界面。取消引用则使用
/u
参数。
然后在
VBA
中写调用的代码:
Sub DLLtest()
Dim abc As New Mytest ‘
定义
abc
为新类,即在
DLL
文件中定义的
abc.test ‘
调用
DLL
中提供的过程,来完成原来在
VBA
中的功能,起到隐藏代码的效果
Set abc = Nothing
End Sub
提供的示例中,将
VBA
方法与
DLL
调用放在了一起,便于大家进行比较。另外,
DLL
文件的制作远比我在这里介绍的复杂,还会涉及到类初始化、自定义属性与事件等内容,不过如果有时我们仅仅需要借助其来保护我们的
VBA
代码的话,掌握这部分也就足够了,呵呵。
附件下载列表:
2008-3-26 23:34:13 下载次数: 64
DLL调用示例.rar
(17.97 KB)
扫码关注5G通信官方公众号,免费领取以下5G精品资料
1、回复“
LTBPS
”免费领取《
《中国联通5G终端白皮书》
》
2、回复“
ZGDX
”免费领取《
中国电信5G NTN技术白皮书
》
3、回复“
TXSB
”免费领取《
通信设备安装工程施工工艺图解
》
4、回复“
YDSL
”免费领取《
中国移动算力并网白皮书
》
5、回复“
5GX3
”免费领取《
R16 23501-g60 5G的系统架构1
》
6、回复“
iot6
”免费领取《
【8月30号登载】物联网创新技术与产业应用蓝皮书——物联网感知技术及系统应用
》
7、回复“
6G31
”免费领取《
基于云网融合的6G关键技术白皮书
》
8、回复“
IM6G
”免费领取《
6G典型场景和关键能力白皮书
》
共获得 2 次点评
我要点评
dlutli
威望 +10 个
· 学习,这是一个好办法
详细..
发表与:2008-6-9 20:39:04
cmccmario
专家指数 +1
· 我很赞同
详细..
发表与:2008-5-11 18:41:44
作者的更多帖子
生成加邻区指令
2012-11-21
COUNTER解释整理
2012-09-19
自制公式(非常有用)
2012-07-19
非常全非常详细的GSM信令流程(还有大量图解)
2012-07-19
爱立信3算法
2012-03-16
ExcelVBA与数据库
2012-01-12
[
充值威望,立即自动到帐
] [
VIP贵宾权限+威望套餐
] 另有大量优惠赠送活动,请光临充值中心
充值拥有大量的威望和最高的下载权限,下载站内资料无忧
yaoxuanbin
银牌会员
发短消息
关注Ta
积分 3716
帖子 54
威望 11285 个
礼品券 8 个
专家指数 66
注册 2007-8-20
专业方向 网优
来自 广东
回答问题数
0
回答被采纳数
0
回答采纳率
0%
#2
大
中
小
使用道具
发表于 2008-03-31 11:10:45
只看楼主
技术问题,回答得专家指数,快速升级
网站又没法搜帖子了,怎么回事?404,出现好几天了
在线,17天前提问
怎么下载文件一直失败?
在线,30天前提问
为什么登不进去
在线,56天前提问
服务器又出问题了
在线,97天前提问
签到出现问题几天了
在线,103天前提问
签到出现问题几天了
在线,103天前提问
签到出现问题几天了
在线,103天前提问
为什么不能签到?
在线,105天前提问
签到又有问题了吗
在线,105天前提问
从哪里下载这个监控软件?
在线,115天前提问
能同时发本5g的书么?
在线,115天前提问
Keysight World: Innovate全球创新云峰会直播链接是.
在线,137天前提问
请问直播链接是?
在线,137天前提问
请问24号的keysight的会议地址在哪里呀
在线,156天前提问
ims失败原因值
在线,180天前提问
UE RRC Inactive处于以下哪些管理状态
在线,191天前提问
很有用的,看不懂的找我,QQ:214525732
对本帖内容的看法?
我要点评
[
立即成为VIP会员,百万通信专业资料立即下载,支付宝、微信付款,简单、快速!
]
shelron
金牌会员
发短消息
关注Ta
积分 7814
帖子 456
威望 33420 个
礼品券 8 个
专家指数 49
注册 2006-4-29
专业方向 通信
回答问题数
0
回答被采纳数
0
回答采纳率
0%
#3
大
中
小
使用道具
发表于 2008-06-05 21:11:49
顶,支持楼主.
顶,支持楼主.
对本帖内容的看法?
我要点评
最新通信职位:
广东通信人才网
|
北京通信人才网
|
上海通信人才网
|
南京通信人才网
|
西安通信人才网
|
重庆通信人才网
|
中国通信人才网
alcsl
论坛元老
发短消息
关注Ta
积分 29369
帖子 1244
威望 48354 个
礼品券 164 个
专家指数 136
注册 2008-3-24
专业方向 网络优化
回答问题数
0
回答被采纳数
0
回答采纳率
0%
#4
大
中
小
使用道具
发表于 2008-06-10 18:32:43
需要学习一下了!!!
对本帖内容的看法?
我要点评
热点:
通信招聘职位
|
网络优化全集
|
WCDMA精品
|
TD-SCDMA学习资料
|
EVDO
|
MGW媒体网关资料
fse2006
金牌会员
发短消息
关注Ta
积分 7838
帖子 706
威望 71 个
礼品券 0 个
专家指数 5
注册 2006-11-6
专业方向
回答问题数
0
回答被采纳数
0
回答采纳率
0%
#5
大
中
小
使用道具
发表于 2008-06-17 11:59:21
Excellent
对本帖内容的看法?
我要点评
最新通信职位:
广东通信人才网
|
北京通信人才网
|
上海通信人才网
|
南京通信人才网
|
西安通信人才网
|
重庆通信人才网
|
中国通信人才网
CAMYP
入门会员
发短消息
关注Ta
积分 5
帖子 1
威望 1 个
礼品券 0 个
专家指数 0
注册 2008-7-26
专业方向 vba
回答问题数
0
回答被采纳数
0
回答采纳率
0%
#6
大
中
小
使用道具
发表于 2008-07-26 12:32:36
共获得 1 次点评
我要点评
ipseno
威望 -15 个
· 禁止纯表情灌水
详细..
回复
发表与:2013-12-29 16:44:17
[
2分钟拥有VIP权限和充足威望,可下载站内任何资料
] [
快速找到一份高薪的通信行业职位
]
zhangyulei2470
钻石会员
发短消息
关注Ta
积分 13497
帖子 509
威望 18391 个
礼品券 15 个
专家指数 289
注册 2007-12-29
专业方向 通信
回答问题数
0
回答被采纳数
0
回答采纳率
0%
#7
大
中
小
使用道具
发表于 2008-08-02 11:44:32
下载看看那,多谢楼主了!
对本帖内容的看法?
我要点评
学无止境,不止学习方能不断进步!
热点:
通信招聘职位
|
网络优化全集
|
WCDMA精品
|
TD-SCDMA学习资料
|
EVDO
|
MGW媒体网关资料
chinaren123
银牌会员
发短消息
关注Ta
积分 4627
帖子 439
威望 22710 个
礼品券 5 个
专家指数 7
注册 2006-6-4
专业方向 爱立信
来自 WH
回答问题数
0
回答被采纳数
0
回答采纳率
0%
#8
大
中
小
使用道具
发表于 2008-10-08 21:52:13
相当的感谢!!!!!!!!!!!!
对本帖内容的看法?
我要点评
[
2分钟拥有VIP权限和充足威望,可下载站内任何资料
] [
快速找到一份高薪的通信行业职位
]
xzf953
金牌会员
发短消息
关注Ta
积分 9431
帖子 868
威望 291215 个
礼品券 5 个
专家指数 79
注册 2007-2-27
专业方向 网络优化+VBA+数据库
回答问题数
0
回答被采纳数
0
回答采纳率
0%
#9
大
中
小
使用道具
发表于 2008-10-09 19:54:37
顶下
对本帖内容的看法?
我要点评
热点:
通信招聘职位
|
网络优化全集
|
WCDMA精品
|
TD-SCDMA学习资料
|
EVDO
|
MGW媒体网关资料
unicom_fj
VIP会员
发短消息
关注Ta
积分 158975
帖子 19406
威望 2321173 个
礼品券 54 个
专家指数 433
注册 2006-10-27
专业方向 IT
回答问题数
0
回答被采纳数
0
回答采纳率
0%
#10
大
中
小
使用道具
发表于 2009-01-18 13:27:01
已经下了,谢谢!
对本帖内容的看法?
我要点评
[
2分钟拥有VIP权限和充足威望,可下载站内任何资料
] [
快速找到一份高薪的通信行业职位
]
GEEYI
金牌会员
发短消息
关注Ta
积分 5496
帖子 243
威望 13657 个
礼品券 64 个
专家指数 12
注册 2008-5-5
专业方向 信息
回答问题数
0
回答被采纳数
0
回答采纳率
0%
#11
大
中
小
使用道具
发表于 2009-07-24 15:57:00
看不懂 哦
对本帖内容的看法?
我要点评
[
2分钟拥有VIP权限和充足威望,可下载站内任何资料
] [
快速找到一份高薪的通信行业职位
]
ipseno
版主
发短消息
关注Ta
积分 6989
帖子 873
威望 13460 个
礼品券 610 个
专家指数 -75
注册 2008-3-24
专业方向 网络优化
回答问题数
0
回答被采纳数
0
回答采纳率
0%
#12
大
中
小
使用道具
发表于 2013-12-29 16:44:17
QUOTE:
原帖由
CAMYP
于 2008-7-26 12:32:36 发表
禁止纯表情灌水
对本帖内容的看法?
我要点评
热点:
通信招聘职位
|
网络优化全集
|
WCDMA精品
|
TD-SCDMA学习资料
|
EVDO
|
MGW媒体网关资料
讨论帖
资料帖
投票帖
悬赏帖
快速回复主题
标题
[经验] 转载-用DLL封装VBA" tabindex="1">
内容
上传资料请点左侧【添加附件】
(勾选中文件为要删除文件)
DLL调用示例.rar
您即将访问其它网站
关闭
您即将访问的地址是其它网站的内容,MSCBSC将不再对其安全性和可靠性负责,请自行判断是否继续前往
继续访问
取消访问,关闭
当前时区 GMT+8, 现在时间是 2024-04-27 12:08:39
渝ICP备11001752号
Copyright @ 2006-2016 mscbsc.com
本站统一服务邮箱:mscbsc@163.com
Processed in 1.111911 second(s), 44 queries , Gzip enabled
TOP
清除 Cookies
-
联系我们
-
移动通信网
-
移动通信论坛
-
通信招聘网
-
Archiver