2012-12-06 VBA学习

来源:互联网 发布:360网络急救箱 编辑:程序博客网 时间:2024/05/22 11:48

一、关键词:VBA抓取网页数据 

1、CreateObject Function

Creates and returns a reference to an ActiveX object

Syntax

CreateObject(class,[servername])

class: the application name and class of the object to create

servername the name of the network  server where the object will be create. if the server name is a empty string (" "),the local machine is used.


二、关键词 DLL的开发

Windows系统平台提供的一种有效的编程与运行环境,可以 把独立的程序模块创建为较小的DLL(Dynamic Linkable Library,动态链接库)

三、Regsvr32命令:windows中的控件文件(如扩展名为DLL、OCX、CPL的文件)的注册与反注册工具。在activeX中,因为activeX不注册是不能被系统识别与运用的。而regsvr32命令就是提供这样的服务的。

打开剪切板:clipbrd.exe 

打开画图:mspaint


昨天给了一个Exel 文档,包括VBA,还有一个VB的项目,模仿vb项目中的Webclient实现VBA的web服务。creteobject方法创建一个xmlhttp对象。

今天让在vba中实现对dll的调用。发现在vb.net中建立类、通过解决方案生成dll文件、ragasm注册,想在vba中调用。结果在vb有调用是可以的,但vba中工具->引用,弹出的对话框中添加引用不可以,弹出一个框,日文,不懂什么意思。是间导师提到一个ragsvr32的命令。

现在把dll换为activeX来实现。还是不会。慢慢学吧。


OLE(对象连接与嵌入),COM(组件对象模型)。一本书:《OLE 2高级编程技术》《COM本质论》

COM是二进制组件,在任何平台、任何语言之间都能使用;它是一套组件开发标准,大家都去遵守这个约定,才能使不同厂商的组件相互调用。activeX插件就是一个COM组件。在早期开发COM时,需要考虑的东西很多,如函数在编译后重新编码对调用产生的影响;不同操作系统对可执行文件的内存分配回收问题等。

现在可以在.NET上开发activeX插件。

由.net开发的东西是属于托管(?),并不是真正意义的二进制标准。这牵扯到.net平台的调用技术P/Invoke和Interop技术。.net提供的CCW(COM可调用包装的机制)将ActiveX插件通过转换成非托管的等价的COM组件才能使用,即才能被OLE容器调用(?)。


一个知识点,通过自己学习,运用了,还得反思,才能真正被内化。


原创粉丝点击