VBA封装成DLL如何ad添加封装循环

VBA封装为DLL及调用
过程名称为Test:Sub Test()On Error ResumeNextDimVBt,YB'定义变量VBtSetVBt= GetObject(, "Excel.Application")'使VBt表示为EXCEL对象SetYB=VBt.ActiveSheet'使YB表示为EXCEL的当前工作表
再引用DLL。excel2013数据分析。1、注册DLL(使之放在可引用的列表上):
三、 修改ActiveX DLL的工程名称和类模块名称四、编写代码:在代码窗口输入代码,要分两步走:看看excel2013官方。先注册DLL,只需要将上面的代码ThisWorkBook.path& "\VBADLL.dll" 换成一个固定位置即可。
一、在VBE中调用DLL文件调用DLL文件,你看调用。这样,dll。学会VBA封装为DLL及调用用户无需下载任何软件 则需要将DLL文件放置到一个固定文件夹,但这些XLS文档又不可能都与DLL文件放在同一个文件夹,如果你有多个XLS文档需要使用到同一个DLL文件,excel2013官方。检查是否存在错误;3、生成DLL文件:制作DLL文件。
②DLL文件放在固定文件夹内,可以省略】):看看excel2013 回归分析。六、保存工程、测试、生成DLL文件:你看excel2013 激活。1、保存工程:封装。保存本工程以作为将来修改代码和升级程序的需要;2、测试工程:执行快捷工具栏上的“启动”按钮,可以对工程属性加以描述【非必要设置,vba。感觉封装DLL的主要步骤是:
②编辑代码(要在对象前面加上定义的EXCEL变量);
案例:相比看excel2013软件下载。在工作表的C1单元格得出A1单元格+B1单元格的值。设计的VBA代码:Sub Test()On Error ResumeNextRange("C1") = Cells(1,1) + Cells(1, 2)End Sub
五、设置工程属性 (为使开发的程序更规范,来完成原来在VBA中的功能,excel2013官方下载。即为DLL文件中的类模块VBAtestABC.Test'调用DLL中提供的过程,excel2013数据分析。输入调用DLL文件程序的过程:Sub DLLtest()Dim ABC As New VBAtest'定义ABC为新类,就不必再去那个引用列表里打个勾了)①DLL文件放在与EXCEL文件同一个文件夹内在ThisWorkbook中添加如下代码:装为。Private Sub Workbook_Open()'打开文件时加载要引用的DLL文件shell "Regsvr32 /s " & Chr(34) & ThisWorkBook.path& "\VBADLL.dll"& Chr(34)End SubPrivate Sub Workbook_BeforeClose(Cancel As Boolean)'关闭文件之前卸载引用的DLL文件shell "Regsvr32 /s /u " & Chr(34) & ThisWorkBook.path& "\VBADLL.dll"& Chr(34)End Sub'/s参数是防止出现确认窗口;/u参数为取消引用。
综上所述,起到隐藏代码的效果Set ABC = Nothing'释放类资源End Sub
④在VBE的代码中调用DLL中的过程。excel2013教程。
二、新建一个模块,因为后面引用DLL文件的代码也应该是指向这个位置的。)先打开EXCEL,建议一般使用手工来注册。我不知道excel2013 条件格式。(这里应该先设计好DLL文件放在硬盘的位置,听说excel2013官方下载。也存在很多问题,但那样比较复杂,即ExcelXP(Microsoft Office 11.0)(Microsoft Office 12.0)(Microsoft Office 14.0)(Microsoft Office15.0)
2、引用DLL(这样每次打开打开文件时,学习excel2013下载。再打开“Visual Basic 编辑器”
'注意要在对象前加上YB变量以表示是EXCEL当前工作表的对象YB.Range("C1")=YB.Cells(1, 1).Value +YB.Cells(1, 2).ValueEnd Sub
注册DLL也可以使用代码来做,新建一个ActiveX DLL工程:excel2013 条件格式。二、 引用:在VB中对Excel的引用不同版本的EXCEL在“引用”窗口里显示的版本号也不同:EXCEL2000(Microsoft Office 9.0)EXCEL2002(Microsoft Office 10.0),你看excel2013视频教程。保证注册的DLL文件的位置正确即可。
①在VB中引用EXCEL;
一、 启动VB6.0,重新注册一次,VBA封装为DLL及调用。最好不要再去修改这个DLL文件。excel2013免费下载。如果出现问题,在正确注册及引用以后,相比看VBA封装为DLL及调用。所以,即使再重新再改回来也可能会出现这些问题,可能是引用后改变了文件的位置或改变了文件的名称,如提示“变量类型未定义”等,
第一部分、使用VB6.0制作DLL文件
第二部分、调用DLL文件
三、在工作表中运行DLLtest宏即可实现调用:
VBA封装为DLL及调用2:36:00|分类:|标签:|字号大中小
使用程序:1、Microsoft Office Excel、Microsoft Visual Basic 6.0
③在VBE中引用该DLL文件;
注意:有时间可能出现某些错误,
(责任编辑:admin)
------分隔线----------------------------
下一篇:没有了
如何用电子表格自动计算持股期间?: [数据手册下载] - NGTB40N60IHLWG 收费订阅2013《...
科目余额表、资产负债表、损益表 用EXCEL来完成 用(07据分析版)EXCE 输入:e-m-d exc...
若何下载excel处事表:答:如题 我显露的可能监视剪贴板的唯有迅雷:把迅雷的禁用后:用ex...
如何处分从excel2013表格中复制数据后anothernd粘贴至excel2007 excel2013教程不兼ano...
用Excel听听公司做数据分析――直方图,2013国考报名的第三天,京佳公务员考试网统计显...
安徽2013从业考试《会计电算化》第七章知识点:Excel简介,近日,微软在听听安徽自己的Of...关于SOLIDWORKS VBA 程序封装为DLL的方法
查看: 701|回复: 0
请教各位,在下正在用VBA 开发,希望将开发的程序封装成DLL。我知道EXCEL 的VBA是有办法的。但 如何实现呀?谢谢!
北京市朝阳区建国路79号华贸中心2号写字楼707-709室,邮编:100025
Copyright (C)
Dassault Systèmes - All rights reserved如何将VBA代码封装成office加载项DLL?
[问题点数:50分]
如何将VBA代码封装成office加载项DLL?
[问题点数:50分]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
匿名用户不能发表回复!|查看: 23058|回复: 67
DLL封装及引用
阅读权限30
在线时间 小时
本帖最后由 XZ 于
21:17 编辑
看了everee 兄为方便自己工作开发VBA工具是否属于公司的讨论深有感触,我们为了提高工作效率没日没夜的钻研办公技巧,虽然得到了领导的赞同和自身的提高,但世上没有永久的宴席,和公司总有分手的的时候,离别方知世情冷暖,面对自己的心血被公司免费占用,岂不痛心疾首?
回首EHOME学习两年,虽然算不上多大进步,至少简单的工具还是做了不少,为了保护自己权益,于是觉得有必要开始学习封装技术,或许不需要多精通,只要能把主要,核心的代码隐藏起来就可以了!,或许加上试用时间限制或者注册码就更完美.
从今天开始学DLL封装,与家人同勉! 以下教程转自http://blog.sina.com.cn/s/blog_55ee0b090100hcx6.html
在vb中,修改“工程”名称和“类模块”名称为需要的名称。本例中,工程修改为TestDLL,类模块修改为Test。
引用Microsoft Office 11.0 Object Library和Microsoft Excel 11.0 Object Library。
Sub mySub(EApp As Excel.Application, r As Long, c As Integer)
& & Dim wb As Excel.Workbook, sh As Excel.Worksheet
& & Set wb = EApp.ThisWorkbook
& & Set sh = wb.ActiveSheet
  sh.Cells(r,c)=&这是测试文本&
  '其他的代码
在Excel中,在VBA中要引用刚才生成的TestDll.dll。
新建一个模块,在其中定义一个类变量T:
Public T As New TestDll.Test
& &On Error Resume Next
& &T.mySub Application, 3, 7
至此,可以在Excel中执行宏AAA,并会在(3,7)单元格得到字符串&这是测试文本&。
'====加载与卸载引用的语句========================================================
shell &Regsvr32 /u /s & & Chr(34) & ThisWorkBook.path & &\test.dll&& Chr(34) '卸载引用的Dll
shell &Regsvr32 /s & & Chr(34) & ThisWorkBook.path & &\test.dll&& Chr(34) '加载引用的Dll
/s 表示不出现对话框
'=========================================================
怎样去掉&工程-引用&中曾经引用的自制的DLL历史记录?
在注册表的 HKEY_CLASSES_ROOT\TypeLib\ 分支中查找“数据”等于“Test”(需要删掉的历史记录),然后会找到一个键值,该键值的数据等于“Test”,看看这个分支下面的数据,是否包含你 DLL的位置等信息,如果确定。则删除这个键值所在HKEY_CLASSES_ROOT\TypeLib\下的{xxxxxxxx-xxxx-xxxx- xxxx-xxxxxxxxxxxx}分支。(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx根据你的实际情况是不同的16 进制)
必要条件: 1 首先要安装VB6.0(精简版也可以,只有6M)
& && && && && & 2 VB引用EXCEL,EXCEL引用DLL
& && && && && & 3 恒心,反复调试
相信大家会收获良多!附件中DLL引用的是EXCEL2007(EXCEL12.0),如2003版出错请自己编译!
附件尚未完全成功,!提取10个单元格不重复值,结果代码只执行到9个单元格...字典未计算上限加一的原因
14:36 上传
点击文件名下载附件
13.56 KB, 下载次数: 834
阅读权限30
在线时间 小时
Sub mySub(EApp As Excel.Application, r As Long, c As Integer)
& & Dim wb As Excel.Workbook, sh As Excel.Worksheet
& & Set wb = EApp.ThisWorkbook
& & Set sh = wb.ActiveSheet
& & Dim d, k
& & Set d = CreateObject(&Scripting.Dictionary&)
& & For i = 1 To 10
& && &&&d(sh.Cells(i, 1)) = &&
& & Next i
& & k = d.KEYS
& & sh.Cells(r, c) = &这是测试文本&
& & sh.Cells(r, c).Offset(0, 1).Resize(UBound(k), 1) = Application.Transpose(k)
& & '其他的代码
End Sub复制代码VB中封装的代码
能否顺便把图片也发上来呢?这样更便于我们这些小鸟学习啊&
阅读权限30
在线时间 小时
& & & & & & & &
Sub HZ(EApp As Excel.Application, wb As Excel.Workbook)
'Dim wb As Excel.Workbook
Dim sh As Excel.Worksheet
Dim PATH As String
Dim dirr
PATH = EApp.ThisWorkbook.PATH
dirr = Dir(PATH & &/*.xls&)
& &Do While dirr && &&
& && &If dirr && EApp.ThisWorkbook.Name Then
& && && & On Error GoTo oo
& && && & Set wb = EApp.Workbooks.Open(PATH & && & dirr)
& && && & wb.Sheets(&经营分析表&).Copy EApp.ThisWorkbook.Sheets(2)
& && && & EApp.ThisWorkbook.ActiveSheet.Name = Mid(wb.Sheets(&经营分析表&).[a2], 1, 3)
& && && & i = i + 1
& && && & wb.Close False
& && &End If
& && &dirr = Dir
& &Loop
& &Exit Sub
oo:
& & MsgBox &Error on:& & Left(dirr, Len(dirr) - 4)
& & EApp.ThisWorkbook.Sheet2.Range(&a65536&).End(xlUp).Offset(1, 0) = dirr '这句代码不成功,尚在研究之中
& & Resume Next
End Sub复制代码代码作用:汇总同一工作薄路径下所有工作薄中名为&经营分析&的表格
代码失败之处: 1 错误表格处理语句会中断
& && && && & 2 excel引用不加错误处理语句的话会提示 &类型不匹配&,但处理过程确实是完成了的.
研究之中...
跟新了附件 原来上传的时候没加上源码
[ 本帖最后由 XZ 于
12:26 编辑 ]
12:02 上传
点击文件名下载附件
40.54 KB, 下载次数: 383
阅读权限30
在线时间 小时
目前的体会 1 VB封装和VBA大致一样,但封装必须要逐句将EXCEL对象前面加上VB引用对象模式 如 表示工作表相对路径 VBA里面是thisworkbook.path VB里面应该是 EXAPP.thisworkbook.path.刚开始学的时候可以使用绝对路径来练习;
& &2 因为VB和VBA的相似性,新手也比较上手,自己动手做几次应该就有一个大致的了解了.要注意变量的声明和EXCEL对象的引用;多看一些列子,然后跟着教程重做几遍
以下是灰袍法师老师的专贴:
阅读权限30
在线时间 小时
怎么没人讨论呢?
上传一个工作簿内多表汇总的列子.通过封装,成功的把每月汇总需要的工具隐藏起来.
虽然没有加上日期判断,但也能保证使用者无法通过修改部分代码来适应新的表格的功能,这就限制了他人使用.
当然,公司如不需要跟新格式的话是可以一直使用的,所以为了保证自己权益,最好还是做一个日期判断或者注册码,这是我下一步学习的目标.
毕竟,数据汇总工具只是为了提高效率,我们不授权别人使用,人家还是可以一步一步汇总.
就我这个示列来说,成功的将1天半-两天地工作量压缩到了10分钟.
附件含工程源码.
[ 本帖最后由 XZ 于
16:05 编辑 ]
16:01 上传
点击文件名下载附件
56.62 KB, 下载次数: 622
阅读权限30
在线时间 小时
Sub registerYS()
'******************
'判断注册表某个字段是否等于预设的值来确定是否注册用户
'通过DLL封装来达到代码保密,限定未注册用户的使用次数
'******************
Dim cc$, tt$, XTIME
cc = GetSetting(ThisWorkbook.Name, &mysection&, &myyear&) '取得注册表值
tt = GetSetting(ThisWorkbook.Name, &mysection&, &myTime&) '取得注册表值
XTIME = VBA.IIf(RC4(tt, &XIANGZHENG&) = &&, 0, RC4(tt, &XIANGZHENG&))
If cc = && Then
& &'判断是否首次使用,并设定注册表值
& &MsgBox &未注册用户!你有10次使用机会.&, vbInformation, 64
& &SaveSetting ThisWorkbook.Name, &MySection&, &MyYear&, RC4(&未注册&, &XIANGZHENG&) '设定注册表值
& &SaveSetting ThisWorkbook.Name, &MySection&, &MyTime&, RC4(1, &XIANGZHENG&) '设定注册表值使用次数
Else
&&'判断是否合法用户,因写入注册表值经过加密,用户无法自行修改解密
& &If cc && StrToHex(RC4(GetHardDiskInfo(hdPrimaryMaster, hdOnlySN), &XIANGZHENG&)) And RC4(cc, &XIANGZHENG&) && &未注册& Then
& && &&&MsgBox &非法用户,系统退出!&, vbExclamation: Exit Sub
& &End If
End If
'记录未注册用户使用次数,'判断未注册用户使用次数是否符合预期
If RC4(cc, &XIANGZHENG&) = &未注册& And XTIME & 10 Then
& &SaveSetting ThisWorkbook.Name, &MySection&, &MyTime&, RC4(XTIME + 1, &XIANGZHENG&) '设定注册表值
& &MsgBox &你还可以试用:& & 9 - XTIME & &次&, vbInformation
Else
& &If RC4(cc, &XIANGZHENG&) = &未注册& And XTIME &= 10 Then MsgBox &试用次数耗尽!无权操作本系统!&, vbInformation: Exit Sub
End If
End Sub复制代码加上判断是否注册用户的列子
阅读权限20
在线时间 小时
学习学习,今天又学了一招
阅读权限30
在线时间 小时
但世上没有永久的宴席,和公司总有分手的的时候,离别方知世情冷暖,面对自己的心血被公司免费占用,岂不痛心疾首?
呵呵,小心版权问题,合同和员工手册之类的东西,看看有没有写明员工的成果物属于公司这句话,
如果有的话,就不要明目张胆的弄注册之类的了,而应该隐蔽设置。
阅读权限30
在线时间 小时
学习下,是不是我的电脑有问题还是怎么了,里面有的链接也打不开
阅读权限20
在线时间 小时
有没有最简单的教程?
比如我制作了一些函数,如何封装成DLL??
最新热点 /1
ExcelHome每周都有线上直播公开课,
国内一流讲师真身分享,高手贴身答疑,
赶不上直播还能看录像,
关键居然是免费的!
厚木哥们都已经这么努力了,
你还好意思说学不好Office。
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师拒绝访问 | www.excelpx.com | 百度云加速
请打开cookies.
此网站 (www.excelpx.com) 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(420da-ua98).
重新安装浏览器,或使用别的浏览器}

我要回帖

更多关于 ad如何添加封装库 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信