VB封装VBA文件
VB封装Excel_VBA成DLL技巧

VB封装Excel_VBA成DLL技巧VB封装Excel_VBA成DLL技巧使用VB6.0在WinXP_sp2、Excel 2000环境下制作、测试通过。
一、启动VB6.0:执行:“文件夹(F)”——“新建(N)”——选择“ActiveX DLL”,如下图1:二、引用:VB 中对Excel的引用执行:“工程(P)”——“引用(N)”——选择所要引用的项目:如下图2Excel 2000中:Microsoft Excel 9.0 Object LibraryMicrosoft Office 9.0 Object LibraryExcel 2003中:Microsoft Excel 11.0 Object LibraryMicrosoft Office 11.0 Object Library三、编写代码:1、将工程默认名称“工程1”,改为“zygtest”,将类模块默认名称“Class1”,改为“zyg365”,2、在类模块的代码编辑区写入代码:如下图3模块名称为“hongtong”,代码如下在VB中编写代码时:要注意以下声名Dim XLAPP As ObjectSet XLAPP = GetObject(, "Excel.Application")代码中引用对象,如SHEET,Cell等,前面要加“XLAPP.”(或按照Sub hongtong() 中的格式编写。
)Sub hongtong()Dim excelApp As New Excel.ApplicationDim excelWorkBook As Excel.WorkbookDim excelWorksheet As Excel.WorksheetSet excelWorkBook = excelApp.Workbooks.Add '创建新工作簿Set excelWorksheet = excelWorkBook.Sheets(1) excelWorksheet.Cells(2, 3) = "宏通" '写入数据excelWorksheet.Cells(3, 4) = "zyg365" '写入数据excelApp.Visible = True '显示excel界面,用于调试excelWorkBook.PrintPreview '打印预览excelWorkBook.PrintOut '打印输出excelWorkBook.Saved = True'excelWorkBook.Close '关闭工作薄'excelApp.Quit '退出excelEnd Sub四、工程属性设置:(可以不设置,本步骤可以省略) 为了使自己开发的程序更规范,可以对本工程的属性加以描述:如下图4执行:“工程(P)”——“工程1属性(E)…”(当前工程中为:“zygtest属性(E)…”)五、保存工程、测试、打包生成Dll文件:1、保存:单击保存,保存到一个文件夹中;2、测试:执行工具栏上的“启动”(右向的三角图标)按钮,检查是否存在错误;3、打包生成Dll文件:执行:“文件(F)”——“生成工程1.dll(K)”(当前工程中为:“zygtest.dll”),重命名为“zyg.dll”,至此,Dll文件制作结束。
VBA封装为Dll的例子、方法与总结

VBA封装为Dll的例子、方法与总结制作DLL时,ThisWorkBook中的代码封装方法如下:1、打开VB6,新建Act iveX DLL。
修改“工程”名称和“类模块”名称为需要的名称。
本例中,工程修改为Test DLL,类模块修改为Test。
2、建立引用。
一般需要引用Microsoft Office 11.0 Object Library和Microsoft Excel 11.0 Object Library。
如果VBA代码中还有其他引用,在VB中也要对他们引用。
3、这一步就是具体封装代码了。
在刚才建立好的Test DLL中,将代码放入Test类模块中。
如封装ThisWorkBook中的Open事件:Sub wbk_open(EApp As Excel.Applicat ion, wb As Excel.Workbook, sh As Excel.Worksheet)'--VBA中需要封装的主体代码End Sub其中VBA中的代码为事先做好的要封装的代码,如下面这个例子:'打开工作薄后在当前的工作表A1中输入TestPrivat e Sub workbook_open()Cells(1, 1) = "Test"End Sub封装为DLL的代码为:Sub wbk_open(EApp As Excel.Applicat ion, wb As Excel.Workbook, sh As Excel.Worksheet)Cells(1, 1) = "Test"End sub现在在VB6中生成Dll,到此就完成封装了。
4、在VBA中使用封装的代码首先,在VBA中要引用刚才生成的Test Dll.dll。
然后新建一个模块,在其中定义这样一个变量T:Public T As New Test Dll.Test然后在ThisWorkBook的Open中引用Test Dll中的Test,代码如下:Privat e Sub workbook_open()On Error Resume NextT.wbk_open Applicat ion, ThisWorkbook, Act iveSheetEnd Sub这样每次打开Excel后,就在Sheet1的Cells(1,1)中输入“Test”。
VB程序的打包与发布

附录打包和发布应用程序在创建Visual Basic应用程序后,您可能希望将该程序发布给其他人。
您可以将使用Visual Basic创建的任何应用程序自由地发布给使用Microsoft Windows的任何人。
可以通过磁盘、CD、网络、或者intranet以及Internet这些途径来发布应用程序。
下面以实例57为例介绍打包和展开应用程序。
一、使用向导进行打包1.启动打包和展开向导Visual Basic的打包和展开向导使您能够轻松地为应用程序创建必需的.cab文件以及安装程序。
与其它向导一样,打包和展开向导将提示您输入相应信息,以便创建您所需要的准确配置。
要从Visual Basic中启动打包和展开向导,请按照以下步骤执行:(1)打开想要使用向导来打包或展开的工程。
注意如果您正在使用一个工程组,或已加载了多个工程,则在启动该向导之前,请确保当前的工程就是您要打包或展开的工程。
(2)如果必要,请使用“外接程序管理器”来加载打包和展开向导:从“外接程序”菜单中选择“外接程序管理器”,从该列表中选择“打包和展开向导”,然后单击“确定”,如图1所示。
图1外接程序管理器(3)从“外接程序”菜单中选择“打包和展开向导”来启动该向导,如图2所示。
打包和展开向导提供了三个选项:“打包”选项帮助您将一个工程的文件打包为一个可以展开的.cab文件,而且在某些情况下还要创建一个安装程序来安装该.cab文件。
向导确定需要打包的文件,并引导您作出所必需的选择,以便为您的工程创建一个或多个.cab文件。
“展开”选项帮助您将打好包的应用程序传送到适当的发布媒体,例如软盘、网络共享、或Web站点。
“管理脚本”选项让您可以查看和操作以前使用打包和展开向导时所保存的脚本。
每次使用该向导时,都会保存一个包含您所做的所有选择的脚本。
在以后的过程中,如果您想使用相似的设置值以及做出与原来相同的选择,就可以重新使用这些脚本。
图2打包和展开向导注意:打包和展开向导只能为Visual Basic应用程序创建安装程序和发布媒体。
VB封装到 AUTOcad VBA

B 封裝EXCEL VBA dll1. 安裝VB 精簡版 6.0新建工程選擇activeX DLL, 輸入代碼Option ExplicitSub TestDll(excelApp As Excel.Application)'Dim excelApp As Object'Set excelApp = GetOjbect(, "Excel.Application") Dim excelWorkBook As Excel.WorkbookDim excelWorkSheet As Excel.WorksheetSet excelWorkBook = excelApp.Workbooks(1) Set excelWorkSheet = excelWorkBook.Sheets(1) excelWorkSheet.Cells(1, 1) = "Good" excelApp.Visible = TrueMsgBox "Good Dll"'excelWorkSheet.Cells(3, 3) = "Test Dll2"'excelApp.Visible = ture'excelWorkBook.PrintPreview'excelWorkBook.Saved = True'excelworkbook.close'excelApp.QuitEnd Sub設置引用2. 點擊文件生成dll 并放E:\test.dll 或其他路徑3.註冊/反註冊 DLL(目前測試來看,必須註冊否則會在VBA調用時提示ActiveX無法生成對象)4.註冊成功后,VBA設定引用項目并編寫代碼Option ExplicitSub test()Dim testdll As New VBACls ‘此處為實例化類而非VBAPRJ, 必須new 一個對象,否則報錯Dim myobject As ObjectSet myobject = ActiveWorkbooktestdll.testdll (myobject.Application) ’調用testdll方法,傳入對象為本EXCEL Set testdll = Nothing '清空對象End Sub5.調試,運行后符合預定結果總結:本文僅為VB對VBA dll的簡單測試,對於中間的數據傳輸調用仍需繼續學習1.EXCEL Application 作為對象傳入VB,其他的使用是相同的2.調用DLL時,必須註冊DLL,網上也有將DLL註冊反註冊放在VBA裏面來實現的。
VB_6.0的打包与发布

附录打包和发布应用程序在创建Visual Basic 应用程序后,您可能希望将该程序发布给其他人。
您可以将使用Visual Basic 创建的任何应用程序自由地发布给使用Microsoft Windows 的任何人。
可以通过磁盘、CD、网络、或者intranet 以及Internet这些途径来发布应用程序。
下面以实例57为例介绍打包和展开应用程序。
一、使用向导进行打包1.启动打包和展开向导Visual Basic 的打包和展开向导使您能够轻松地为应用程序创建必需的.cab文件以及安装程序。
与其它向导一样,打包和展开向导将提示您输入相应信息,以便创建您所需要的准确配置。
要从Visual Basic 中启动打包和展开向导,请按照以下步骤执行:(1)打开想要使用向导来打包或展开的工程。
注意如果您正在使用一个工程组,或已加载了多个工程,则在启动该向导之前,请确保当前的工程就是您要打包或展开的工程。
(2)如果必要,请使用“外接程序管理器”来加载打包和展开向导:从“外接程序”菜单中选择“外接程序管理器”,从该列表中选择“打包和展开向导”,然后单击“确定”,如图1所示。
图1 外接程序管理器(3)从“外接程序”菜单中选择“打包和展开向导”来启动该向导,如图2所示。
打包和展开向导提供了三个选项:“打包”选项帮助您将一个工程的文件打包为一个可以展开的.cab 文件,而且在某些情况下还要创建一个安装程序来安装该.cab 文件。
向导确定需要打包的文件,并引导您作出所必需的选择,以便为您的工程创建一个或多个 .cab 文件。
“展开”选项帮助您将打好包的应用程序传送到适当的发布媒体,例如软盘、网络共享、或Web 站点。
“管理脚本”选项让您可以查看和操作以前使用打包和展开向导时所保存的脚本。
每次使用该向导时,都会保存一个包含您所做的所有选择的脚本。
在以后的过程中,如果您想使用相似的设置值以及做出与原来相同的选择,就可以重新使用这些脚本。
VBA程序打包和部署的方法和工具介绍

VBA程序打包和部署的方法和工具介绍VBA(Visual Basic for Applications)是一种用于Microsoft Office应用程序的编程语言,它允许用户使用宏来自动执行各种任务。
当您编写了一个复杂的VBA程序后,将其打包和部署到其他用户的计算机上可能会变得复杂和困难。
本文将介绍一些方法和工具,帮助您轻松地打包和部署VBA程序。
1. 打包VBA程序打包VBA程序是将所有相关文件和依赖项收集到一个单独的文件中,以便在其他计算机上运行。
下面是一些打包VBA程序的方法:a) 使用Microsoft Office自带的打包功能Office中的宏功能可以将所有相关文件打包到一个单独的文件中,以便在其他计算机上运行。
在VBA编辑器中,选择“文件”>“导出文件”,然后选择“导出为文件夹”以将所有相关文件一并导出。
b) 使用第三方打包工具除了Office自带的打包功能外,还有一些第三方工具可以帮助您打包VBA程序。
例如,WinRAR和7-Zip都是常用的打包工具,它们可以将所有相关文件打包为一个压缩文件并进行发布。
2. 部署VBA程序部署VBA程序是将打包后的程序安装到目标计算机上,并确保能够正常运行。
以下是几种常见的部署VBA程序的方法和工具:a) 使用Office自带的安装程序Office自带的安装程序可以帮助您将VBA程序部署到其他计算机上。
在VBA编辑器中,选择“文件”>“导出文件”,然后选择“导出为压缩文件”以将所有相关文件一并导出。
在目标计算机上,运行该压缩文件并按照提示进行安装。
b) 使用Windows InstallerWindows Installer是Windows操作系统的标准安装程序,它可以将应用程序打包为一个独立的安装程序(.msi文件)。
可以使用第三方的安装程序制作工具(如Advanced Installer),将打包的VBA程序制作为一个.msi安装程序,并在目标计算机上运行该.msi文件进行安装。
用VB.NET(Visual

⽤(Visual Basic 2010)封装EXCEL VBA为DLL_COM。
为了保护⾃⼰⾟⾟苦苦编写的Excel VBA代码不被盗⽤,我们需要对Excel VBA代码进⾏加密。
通常的做法是利⽤给⼯程设置密码的⽅法实现加密,对于这类加密⽅法,由于存在安全度低、易破解等问题,因此往往起不到应有的效果。
通过将Excel VBA代码封装成DLL动态链接库,可有效防⽌代码被⾮法查看。
在百度⾥搜索“封装EXCEL VBA”关键字,有很多封装VBA的教程,但99%是利⽤VB6(Microsoft Visual Basic 6.0)来封装,主要原因是VB6的操作界⾯及语法与Excel的VBA具有极⾼的相似度。
2002年,随着的引⼊,⼤部分⼈都放弃使⽤VB⽽选择,VB6终将被淘汰,因此我们必须与时俱进,学习⽤Microsoft Visual Basic 2010封装VBA。
我们可以在VS⾥建⽴com类项⽬,把NET类库的⼀些⽅法重新包装后暴露给VBA使⽤。
案例:在⼯作表的C1单元格得出A1单元格+B1单元格的值。
设计的VBA代码:1Sub Test()2On Error Resume Next3 Range("C1").Value = Range("A1").Value + Range("B1").Value4End Sub⼀、使⽤Microsoft Visual Basic 2010制作DLL⽂件⼯具及原料:1、Microsoft Office Excel 20032、Microsoft Visual Studio 20103、Windows XP 32位操作系统操作步骤:1、启动Microsoft Visual Studio 2010,在起始页界⾯点击“新建项⽬”,如图1所⽰。
图12、在弹出的“新建项⽬”对话框选择“类库”,修改名称为“VBADLL”,点击确定,如图2所⽰。
在-Windows-7-环境下封装-Excel-VBA-代码

在Windows 7 环境下封装Excel VBA 代码一、安装Visual Basic 6.0在Windows 7 下安装Visual Basic 6.0安装会遇到一些兼容性问题,而Windows XP 则很顺利。
当某些程序必须要在Windows 7 下调试的时候,就一定要面对Windows 7 了。
(一)进入安装文件夹,点击“Setup.exe”运行Visual Basic 6.0安装程序。
(二)出现兼容性问题提示,单击“运行程序”。
(三)进入Visual Basic 6.0安装向导,单击“下一步”。
(四)出现“最终用户许可协议”对话框,选择“接受协议”,单击“下一步”。
(五)进入“产品和用户ID”对话框,在“请输入产品的ID号”处输入ID号,全部输入0至9中的任意一个,然后单击“下一步”。
(六)保持默认选择“安装Visual Basic 6.0中文企业版”,单击“下一步”。
(七)选择公用安装文件夹,采取默认或自定义均可。
然后单击“下一步”(八)再次出现兼容性问题提示,直接单击“运行程序”。
(九)进入Visual Basic 6.0 安装程序,单击“继续”后,单击“确定”。
(十)出现“发现了旧版本的Visual SourceSafe”提示,选择“是”(十一)在选择安装类型对话框中,封装Excel VBA 代码选择“典型安装”即可。
(十二)出现“使用新的Visual SourceSafe数据库格式”提示,选择“是”(十三)开始Visual Basic 6.0安装。
(十四)安装完毕,单击“重新启动Windows”。
重新启动Windows后,自动弹出下面的对话框。
如果需要帮助文档,可单击“下一步”继续安装MSDN,对于Visual Basic 6.0的初学者,建议安装。
在安装MSDN 过程中,插入MSDN安装盘按照提示进行安装。
如果不需要帮助文档,单击“退出”,Visual Basic 6.0安装完成。
教程一种封装VBA代码的方法

教程一种封装VBA代码的方法01写在前面使用程序:1、MicrosoftOffice Excel 20162、MicrosoftVisual Basic 6.0需求:在工作表的C1单元格得出A1单元格+B1单元格的值。
设计的VBA代码:••••Sub Test() On Error Resume Next Range("C1") = Cells(1, 1) + Cells(1, 2)End Sub02使用VB6.0制作DLL文件一、启动VB6.0,新建一个ActiveX DLL工程:二、引用:在VB中对Excel的引用不同版本的EXCEL在“引用”窗口里显示的版本号也不同:EXCEL2000(MicrosoftOffice 9.0)EXCEL2002(MicrosoftOffice 10.0),即ExcelXP EXCEL2003(MicrosoftOffice 11.0)EXCEL2007(MicrosoftOffice 12.0)EXCEL2010(MicrosoftOffice 14.0)EXCEL2013(MicrosoftOffice 15.0)EXCEL2016(MicrosoftOffice 16.0)三、修改ActiveX DLL的工程名称和类模块名称四、编写代码:在代码窗口输入代码,过程名称为Test:••••••••Sub Test() On Error Resume Next Dim VBt, YB '定义变量VBt Set VBt = GetObject(,"Excel.Application") '使VBt表示为EXCEL对象 Set YB = VBt.ActiveSheet '使YB表示为EXCEL的当前工作表 '注意要在对象前加上YB变量以表示是EXCEL当前工作表的对象YB. Range("C1") = YB.Cells(1,1).Value + YB.Cells(1,2).ValueEnd Sub五、设置工程属性(为使开发的程序更规范,可以对工程属性加以描述【非必要设置,可以省略】):六、保存工程、测试、生成DLL文件:1、保存工程:保存本工程以作为将来修改代码和升级程序的需要;2、测试工程:执行快捷工具栏上的“启动”按钮,检查是否存在错误;3、生成DLL文件:制作DLL文件。
VB封装Excel_VBA代码为Dll

VB封装Excel_VBA代码为Dll三、编写代码:1、将⼯程默认名称“⼯程1”,改为“zygtest”,将类模块默认名称“Class1”,改为“zyg365”,2、在类模块的代码编辑区写⼊代码:如下图3模块名称为“hongtong”,代码如下在VB中编写代码时:要注意以下声名Dim XLAPP As ObjectSet XLAPP = GetObject(,"Excel.Application")代码中引⽤对象,如SHEET,Cell等,前⾯要加“XLAPP.”特别注意(曾经困扰有段时间):不可再进⾏Dim rng AsxlApp.range,再对rng=5,会产⽣⽤户定义类型错误,直接引⽤range即可。
如:xlapp.range=5。
(或按照 Sub hongtong()中的格式编写。
)Sub hongtong()Dim excelAppAs New Excel.ApplicationDimexcelWorkBook As Excel.WorkbookDimexcelWorksheet As Excel.WorksheetSetexcelWorkBook = excelApp.Workbooks.Add '创建新⼯作簿SetexcelWorksheet = excelWorkBook.Sheets(1)excelWorksheet.Cells(2, 3) = "宏通" '写⼊数据excelWorksheet.Cells(3, 4) = "zyg365" '写⼊数据excelApp.Visible = True '显⽰excel界⾯,⽤于调试excelWorkBook.PrintPreview '打印预览excelWorkBook.PrintOut '打印输出excelWorkBook.Saved = True'excelWorkBook.Close '关闭⼯作薄'excelApp.Quit '退出excelEnd Sub四、⼯程属性设置:(可以不设置,本步骤可以省略)为了使⾃⼰开发的程序更规范,可以对本⼯程的属性加以描述:如下图4执⾏:“⼯程(P)”——“⼯程1属性(E)…”(当前⼯程中为:“zygtest属性(E)…”)五、保存⼯程、测试、打包⽣成Dll⽂件:1、保存:单击保存,保存到⼀个⽂件夹中;2、测试:执⾏⼯具栏上的“启动”(右向的三⾓图标)按钮,检查是否存在错误;3、打包⽣成Dll⽂件:执⾏:“⽂件(F)”——“⽣成⼯程1.dll(K)”(当前⼯程中为:“zygtest.dll”),重命名为“zyg.dll”,⾄此,Dll⽂件制作结束。
如何封装VBA代码

如何封装VBA代码封装我们的VBA代码Visual Basic for Applications(简称VBA)是新一代标准宏语言,是基于Visual Basic for Windows 发展而来的。
VBA 提供了面向对象的程序设计方法,提供了相当完整的程序设计语言。
VBA 易于学习掌握,用户可以容易地将日常工作转换为VBA 程序代码,使工作自动化。
但是VBA在代码的保护上却存在着缺陷。
如果不对VBA工程设置密码保护,代码很容易被人浏览乃至窃取。
而且即使设置了密码保护,也很容易被人破解。
笔者就曾用破解工具officekey 轻松地破解了他人设置的密码保护,不费吹灰之力便浏览了其中的代码,而且从中发现了文档保护密码。
可见,要想保护自己的VBA代码,仅仅设置密码保护是不够的。
我们知道,Visual C++、Visual Basic和C++ Builder以及Delphi等编译器所编译出来的程序不容易被人破解(相对来说),这是因为代码被编译成了可执行文件或者动态链接库文件。
那么,我们是否可以将VBA代码封装到动态链接库文件中,然后用Word调用呢?回答是肯定的。
而且这样做还有一个好处,即可以加快代码的运行速度。
将VBA代码封装成动态链接库假如我们已经写好了一个VBA工程,而且运行无误。
1.建立VB工程及一般性操作首先,我们需要两种工具,其中当然包括Microsoft Word,另外一种是Microsoft Basic 6.0。
打开Microsoft Basic 6.0,在“新建工程”中选取“ActiveX DLL”,新建一个工程。
在属性窗口中将工程名改为VBAPrj,类模块名改为VBACls。
然后在“工程”菜单下打开“引用”,选取“Microsoft Office 11.0 Object Library”——这一步很是关键,切不可遗漏,然后保存工程。
下面我们所做的是向工程内添加代码。
将VBA工程中的一个名为T est过程的代码选定后复制,然后切换到VB编辑器,选中VB的工程管理器中的类模块VBACls,将代码粘贴至代码编辑窗口中,于是这段代码便成了类模块VBACls一个方法,然后将工程编译生成dll文件(如果编译成功的话)。
VBA代码封装过程

VBA代码封装过程介绍VBA(Visual Basic for Applications)是一种基于Microsoft Visual Basic的宏编程语言,广泛地用于Microsoft Office套件中的应用程序,包括Excel、Word和PowerPoint等。
在进行VBA编程时,代码封装的概念非常重要。
代码封装可以提高代码的可读性、复用性和维护性,使得我们的代码更加模块化和灵活。
本文将介绍VBA代码封装过程的原则和步骤,并给出一些实例进行说明。
原则在进行VBA代码封装时,我们可以遵循以下原则:1.可读性:代码应该具备良好的可读性,使用有意义的变量名、函数名和模块名,适当添加注释来解释代码的作用和逻辑。
2.复用性:代码封装的目标之一是提高代码的复用性,即尽量将可复用的代码封装成函数或子过程,方便在多个地方调用。
3.模块化:将代码按照功能或逻辑划分成多个模块,每个模块专注于一个特定的任务或功能,便于管理和维护。
4.低耦合:代码封装的目的之一是减少代码之间的耦合性,模块之间应该尽量独立,避免过多的依赖关系。
5.高内聚:代码封装的模块应该具备高内聚性,即模块内部的代码功能相关,职责明确。
步骤下面将按照一般的步骤介绍VBA代码封装过程:1. 分析需求在进行代码封装之前,首先需要明确需求。
分析需求可以帮助我们确定代码封装的范围和目标。
2. 创建模块根据需求,创建一个新的模块或者在现有模块中创建一个新的子过程。
模块可以理解为一个代码容器,用于封装一组相关的函数和子过程。
3. 定义变量和常量在模块的顶部,定义所需的变量和常量。
变量和常量的名称应该具有描述性,以便于代码的可读性和维护性。
4. 编写函数和子过程根据需求,在模块中编写相应的函数和子过程。
函数和子过程应该具有良好的功能划分和职责明确。
5. 添加注释在代码中适当添加注释,解释代码的功能、逻辑和输入输出等信息。
注释可以提高代码的可读性,便于他人理解和维护代码。
如何给vb程序打包

SqlConnection conn = new SqlConnection("Data
Source=ZWEIQUAN-PC;Initial Catalog=Student;Integrated Security=True"); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; conn.Open(); mandText = "select * from 信息表 where 月份 ='" + this.textBox1.Text.Trim() + "'"; SqlDataReader sdr = cmd.ExecuteReader(); while (sdr.Read()) { //需要数据的 详细提取 } sdr.Close(); conn.Close(); 注:"Data Source=ZWEIQUAN-PC;Initial Catalog=Student;Integrated Security=True" ZWEIQUANPC:计算机名 Student:对应的数据库名称 信息表:对 应表的名字。 详情可见我上传的文档:C#连接数据库及 增删查改操作
Private Sub
cmdshowfirst_Click() frmLogin.Show Form1.Hide End Sub
3、
Option Explicit
Public LoginSb cmdCancel_Click() '设置全局变量为 false '不提示失败的登录 LoginSucceeded = False Me.Hide End Sub
SW VBA装配体一键打包

Dim swApp As SldWorks.SldWorksDim swModelDoc As SldWorks.ModelDoc2Dim swModelDocExt As SldWorks.ModelDocExtensionDim swPackAndGo As SldWorks.PackAndGoDim pgFileNames As VariantDim status As BooleanDim statuses As VariantDim fullpath, myPath, tt As StringSub PackAndGo()Set swApp = Application.SldWorksSet swModelDoc = swApp.ActiveDocIf swModelDoc Is Nothing ThenMsgBox "没有可用的文件!"Exit SubEnd IfExtensionName = Right(swModelDoc.GetPathName(), 7)If (Empty = ExtensionName) ThenMsgBox "没有保存文件,请保存或另存为!"Exit SubEnd IfIf ((ExtensionName = ".SLDASM") Or (ExtensionName = ".sldasm")) = False Then MsgBox "文件类型必须为装配体!"Exit SubEnd IfswModelDoc.SaveSet swModelDocExt = swModelDoc.ExtensionSet swPackAndGo = swModelDocExt.GetPackAndGo' Include any drawings, SOLIDWORKS Simulation results, and SOLIDWORKS Toolbox components swPackAndGo.IncludeDrawings = TrueswPackAndGo.IncludeSimulationResults = TrueswPackAndGo.IncludeToolboxComponents = True' Get current paths and filenames of the assembly's documentsstatus = swPackAndGo.GetDocumentNames(pgFileNames)Call TitleNameUCase(pgFileNames) '文件名转换为大写status = swPackAndGo.SetDocumentSaveToNames(pgFileNames)' Set folder where to save the filesfullpath = swModelDoc.GetPathName()myPath = Left(fullpath, Len(fullpath) - 7)myPath = myPath & Format(Date, "yyyymmdd") & ".zip"status = swPackAndGo.SetSaveToName(True, myPath)statuses = swModelDocExt.SavePackAndGo(swPackAndGo)MsgBox (Mid(myPath, 1 + InStrRev(myPath, "\")) & " 打包完成!")End SubPrivate Sub TitleNameUCase(pgFileNames) k = UBound(pgFileNames)For i = 0 To kp = InStrRev(pgFileNames(i), "\")l = Left(pgFileNames(i), p - 1)r = Mid(pgFileNames(i), p)r = UCase(r)pgFileNames(i) = l & rNext iEnd Sub。
51CTO学院-Office VBA封装技术(via VB6)视频课程

51cto学院-Office VBA封装技术(via VB6)视频课程课程目标学员不仅能学会VB的一般用法,而且还可以熟练使用VB封装VBA代码,能够封装函数,制作Offi ce COM加载项,进一步熟悉和理解Office各组件(Excel Word Outlook等)VBA对象模型.适用人群正在学习VBA的人员,经常使用办公软件的人员,想学习制作Office插件的人员课程简介课程目标:1,学员不仅能学会VB的一般用法,而且还可以熟练使用VB封装VBA代码,能够封装函数,制作Of fice COM加载项,进一步熟悉和理解Office各组件(Excel Word Outlook等)VBA对象模型.适合对象:1,正在学习VBA的人员2,经常使用办公软件的人员3,想学习制作Office插件的人员学习条件:1,手工熟练使用办公软件2,有较好的英文水平和计算机方面的词汇量3,最好有一定的VBA编程基础4, 硬件方面: XP或win7系统, Office 2003-2010各版本均可.课程1Office_COM加载项介绍[免费观看]21分钟介绍了Office COM加载项的制作过程,和常规的Office加载项有哪些异同点。
并且重点介绍了开发Office COM加载项需要安装哪些软件。
2制作第一个VB6程序[免费观看]26分钟封装技术之前,必须学会VB的基本用法。
因此,这节课通过一个范例,讲述了如何创建一个EX E工程。
3VB窗体与控件的使用[免费观看]24分钟本节课讲述如何使用控件数组,如何使用框架,列表框,单选按钮等常用控件。
4VB窗体的菜单和工具栏设计[免费观看]21分钟VB窗体技术的提高课程:VB窗体的菜单和工具栏设计让你的VB窗体的元素更丰富,更专业!5控件响应按键[免费观看]23分钟为VB控件指定按键,按下不同的组合键执行不同的过程。
KeyDown事件详解6存取外部文件数据[免费观看]33分钟通过制作一个古诗浏览器,详解VB读取txt文件数据;利用VB存取txt数据的特征,设计了自动记忆上次窗体大小和位置的编程用法。
VB封装工作组文件及调用探讨

VB封装工作组文件及调用方法探讨前言此前我曾在论坛发过两篇文字,即关于《如何避开宏安全级限制启动MDB》与《VB建壳指定工作组并启动MDB》,由于成文较为仓促,文中有不少值得探究的地方,留待以后在文章中补充或更正。
本文与此前的两篇文字主题大同小异,仍围绕VB辅助ACCESS进行项目开发的主题,只是侧重点有所不同,但几篇文字又都相互关联,在实际项目开发中可以综合运用。
本文主题为:VB实现资源文件集成、封装及调用。
论坛中有许多朋友提及并关注这一话题,下面我将结合实例与大家共同分享自己有关这方面的一些心得。
权当抛砖引玉,还是那句话,如果此文对您有所帮助,那将是本人莫大之快事!本文讲解要点:1、资源文件集成与封装2、资源文件释放及调用3、封装技巧应用系统及平台要求:1、操作系统为:XP22、ACCESS为2003 版3、VB为 6.0附注及说明:1、本文围绕具体实例进行讲解。
有关实例及VB源码可到office中国江羽空间下载2、实例含:窗体图片素材、图标素材、编译的mdw文件集成.exe、VB源码3、实例演示:将封装的“security.mdw”工作组文件释放到system32文件夹4、本文默认你已对于VB6编程有一定了解第一章、资源文件集成1.1 初识VB资源编辑器我们要实现资源文件集成封装到应用程序中,首要的工作就是将预集成资源文件(本文实例:“security.mdw”工作组文件)寄存到VB资源编辑器中。
那什么VB资源编辑器?通俗说就是VB用于存放资源文件的容器。
VB的资源编辑器可以存放包括:文本、图片、二进制数据等,几乎所有的Windows应用程序中的资源,当我们需要使用时,再从中释放或提取出来,供我们使用。
1.2 启动资源编辑器步骤一:VB资源编辑器是外接程序,我们必须调用并启动它。
在VB编辑环境中点菜单[外接程序]—[外接程序管理器] (见图1),启动外接程序管理器窗口。
(图1)步骤二:选择[VB6资源编辑器]选项—钩选[加载/卸载]—点[确定],你在工具栏中就能看到资源编辑器图标(见图2)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VB中的类开发对程序员和编程爱好者来说,VB中类的技术是学习中的一个难点,在大型软件的开发过程中,模块(Moudle)、控件(Activemoudle)构成了系统化、高效化的软件工程,而类的技术是控件和链接库技术的基础,因此掌握类的理论和编程方法是非常有意义的。
(一)类的基本定义和应用概述;类是包含了方法、属性、数据成员的高级代码模块,它既在模块的范畴之内,又是一个没有图形界面的Activeocx,程序员可以象使用控件一样使用它,但却不能看到它,值得注意的是,类是不能继承的。
类能够使我们高效的完成对某一个或者某几个特定的对象的复杂操作,对象的动作就是类的方法,对象的属性就是类的属性过程。
相对而言,如果编程的对象是一组事物,那么,我们采用标准模块的方式是非常合适的,在下列两种情况下,应该使用类进行代码处理:(1)创建大量性质相近的对象;(2)提高代码的封装性。
类的创建非常简单,在进行代码编写的时候,在“工程”菜单中选择“添加类模块”项目,就可以添加一个空白的类。
类文件一般以.cls作为扩展名保存。
(二)类的方法的实现;类的方法类似于动态链接库的接口函数,它能够接受其他窗体代码的指定类型参数,并且传递到类中。
一般来说类的方法是能够指定是否有返回值的。
它在类中通常是一个public过程。
请看下面的代码示例,它使一个密码框拒绝非字母的输入:(1)类cls的代码;Option Explicit'变量检查Private WithEvents mytxt As TextBox'本类中的方法接受和控制一个text密码框Dim isNUM As Boolean'类的模块级变量Public Sub Attach(itTEXT As TextBox)'接受外部变量到mytxt中Set mytxt = itTEXTEnd SubPrivate Sub mytxt_KeyUp(KeyCode As Integer, Shift AsInteger)isNUM = (KeyCode > = 65) And (KeyCode < = 90)'测试密码框的键盘输入是否是英文字母If isNUM = False ThenBeepmytxt.Text = ""'如果输入不是英文字母则响铃并且清空密码框内容MsgBox "非法字符输入!"End IfDebug.Print mytxt.Text'调试输出密码框内容End Sub'类的代码结束(2)类的引用;已经编写完成的类可以经过两种格式进行引用,第一种方式:Private(public 或者dim) myCLS(指定的类名)As Newcls(编写完成的类名);第二种方式较多用于程序编写风格较“老”的程序员:首先在窗体代码中进行模块级声明――Dim myCLS Ascls,然后在具体代码过程中进行具体定义―― Set mycls = Newcls。
这两种方式的效率和代码的简洁性方面可能会有所差别,但在笔者的编程实践中,并没有什么特别的感觉,不过我较多使用第一种方式,因为它书写起来更加方便。
另外,在代码结束的时候,使用Set myCLS = Nothing来取消类的资源占用是一种非常好的编程习惯。
在窗体form1中(窗体有一个密码框控件text1,passworldchar="*")添加以下代码:Option ExplicitPrivate myCLS As New cls'引用clsPrivate Sub Form_Load()myCLS.Attach Text1'启动类End Sub'在代码结束时记得释放资源Private Sub Form_Unload(Cancel AsInteger)Set myCLS = NothingEndEnd Sub本文代码展示了类的方法的代码编写过程和调用方式(尽管它和类的事件非常相似),它的效果是,如果密码框中被输入了非字母,则系统振铃,并删除密码框中的原来的数据――在一定程度上保护密码。
类的方法可以不需要任何参数,这一点类似一个public的函数或者过程,它也是类中使用最广泛的。
在下一篇文章中我将讨论,如何使用类的属性、事件和方法进行综合编程。
我们讨论了类的理论、类的创建和类的方法的编程实践,实际上,类之所以能够在软件工程中广泛应用,最主要的一点是它可以非常方便的封装许多编程需要的属性,这不仅使程序员在一定程度上克服控件(ocx)和链接库(dll)设计和调试中的复杂性,而且能够提高程序代码的简洁和高效性――本文将讨论完整的类的编程,包括方法、属性和基本事件。
(一)类的属性的特征和定义;类似于标准控件的属性,类的属性允许用户在指定的数据范围内进行赋值,这些值被类内的各个代码部分所共享。
属性的获得和传递需要经过Property Let和Property Get语句进行编程,当然,我们首先需要在类中进行全局或者模块级的相应变量定义。
(二)事件的属性和基本定义;和窗体的事件类似,类也有两个基本的事件,Class_Initialize(类加载时触发)和Class_Terminate(类卸载时触发),这两个事件都是private的。
实际上,我们完全可以忽略这两个事件――只要你记得完善类的方法和属性。
类同样可以定义自己的事件,它和方法的程序编写格式类似,只不过需要WithEvents关键字进行参数声明,而且事件不能有任何命名参数或者可选参数,它也没有返回值。
实际上,结构良好的方法和属性完全可以替代结构复杂的类的事件。
(三)类的方法、事件和属性的编程实例;本程序的设计目的是,通过类控制窗体中文本框的内容的全部大写、小写和逆向排序转化。
为了方便代码的书写和调用,我在类中引用了枚举的编程方法。
以下代码在类Class1:Option ExplicitPrivate WithEvents myTXT AsTextBox'方法的参数接口Public Enum sTYLELcaseit'小写属性Lbigit'大写属性Nlogoit'逆向排序属性End Enum'自定义枚举,用来实现属性的自动赋值Private mvarBiaozhi As sTYLE'实现枚举常量的连接Public Function dONE() As String''DONE方法用来根据指定的枚举属性,对'窗体文本框进行相应的字符转化操作'并且返回转化后的字符串If mvarBiaozhi = Nlogoit ThendONE = StrReverse(myTXT)'逆向排序ElseIf mvarBiaozhi = Lcaseit ThendONE = LCase(myTXT)'强制小写转化ElsedONE = UCase(myTXT)'强制大写转化End IfEnd Function'DONE方法结束Public Property Let Biaozhi(ByVal vData As sTYLE)'获得属性的被赋的值mvarBiaozhi = vDataEnd PropertyPublic Property Get Biaozhi() As sTYLE'传递属性值到类中Set Biaozhi = mvarBiaozhiEnd PropertyPublic Sub Attach(itTEXT As TextBox)'连接类的方法Set myTXT = itTEXTEnd SubPrivate Sub Class_Initialize()'本事件在类倍加载时激活MsgBox "你好!本程序向您展示使用类的方法、属性、事件进行编程的技术!" End SubPrivate Sub Class_Terminate()'本事件在类被卸载时激活MsgBox "你好!记得在Class_Terminate中填写对象撤销后的代码!"End Sub'类的代码全部结束(四)窗体代码的引用编程;在窗体FORM1中添加文本控件TEXT1、下拉列表控件COMBO1、命令按钮COMMAND1(CAPTION="开始转化"),调整三个控件到适当位置。
Dim myT As New Class1'类的引用Private Sub Form_Load()Combo1.ClearCombo1.AddItem "字符串大写转化"Combo1.AddItem "字符串小写转化"Combo1.AddItem "字符串逆向排序"Combo1.ListIndex = 0'在列表框中添加属性选项End SubPrivate Sub Command1_Click()'当命令按钮按下时激活类myT.Attach Text1'方法参数联接Select Case Combo1.ListIndexCase 0myT.Biaozhi = LbigitCase 1myT.Biaozhi = LcaseitCase 2myT.Biaozhi = NlogoitEnd Select'根据列表框的选择,给类的Biaozhi属性赋值'注意,在编程环境中,上述属性值自动添加Text1.Text = myT.dONE'返回排序结束后的字符串End SubPrivate Sub Form_Unload(Cancel As Integer)Set myT = NothingEnd'良好的编程习惯End Sub怎么样,我们的代码看起来如此的简洁,这种感觉就象是在使用一个控件,不仅可以随心所欲的调用,而且方便的使用了vb的自动提示功能。
(五)关于类的编程技术的总结;严格的说,类是vb编程中的一个相当有用的技术,同样也是学习和掌握中的难点,类在大型软件工程中应用是非常广泛和卓有成效的,但是,在小型软件开发中,为了提高软件的效率和代码的清晰度,应该避免使用较多的类模块,控件和联接库,取代以标准模块。
本文所示例的代码比较简单,却覆盖了关于模块编程技术的方方面面,希望初学者能够有所借鉴,也希望程序员能够共同探讨。
我们应该相信,无论多么复杂的高楼大厦都是由普普通通的方砖堆砌而成的,同样,无论所么复杂的软件工程都是由基本的程序语句所构成的,编程爱好者、程序员和分析员的区别只是在于,用同样的程序语句构建的程序的不同而已DLL文件制作与在VBA调用初级进阶本文用一简例来演示如何将一正常在VBA中运行的代码移植到VB制作的DLL中去,并介绍如何在VBA中进行调用。