存档在 ‘加载项’ 分类中.

使用VB6编写COM加载项

Technorati 标签: ,,

下面记录下使用VB6为Excel创建COM加载项的步骤,以供日后有用时参考。

步骤1:打开VB6。在“新建工程”对话框中选择“外接程序”,单击“打开”按钮,如下图所示。

NewAddinDia

此时,创建一个名为MyAddIn的工程,包含一个名为frmAddIn的窗体和一个名为Connect的Designer类变量。

步骤2:将工程名称改为MyFirstCOMAddIn。

步骤3:删除默认的窗体frmAddIn。

步骤4:删除Connect中的全部代码。

步骤5:在工程资源管理器窗口双击Connect打开加载宏设计器窗口,并对其进行相应的设置,如下图所示。

SetAddInDesigner 

上图中,在“通用”选项卡中设置了COM加载项在Excel的COM加载项对话框中显示的名称及相应的描述,并设置应用程序为Microsoft Excel,选择初始化加载行为为Startup,表示在Excel每次启动时都运行该加载项,当然还有其他三个选项分别设置何时启用加载项。该对话框还有一个名为“高级”的选项卡,此时我们暂且不用。

步骤6:在工程资源管理器窗口右击Connect,选择“查看代码”,打开代码窗口。

步骤7:在代码窗口顶部左侧的对象列表框中选择AddinInstance对象,在右侧的事件列表框中选择OnConnection事件,并输入下面的代码:

   1: Private Sub AddinInstance_OnConnection(ByVal Application As Object, _
   2:                                        ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, _
   3:                                        ByVal AddInInst As Object, _
   4:                                        custom() As Variant)
   5:     MsgBox “这是使用VB6创建的COM加载项”
   6: End Sub

然后,再在事件列表框中选择OnDisconnection事件,并输入下面的代码:

   1: Private Sub AddinInstance_OnDisconnection(ByVal RemoveMode As AddInDesignerObjects.ext_DisconnectMode, _
   2:                                           custom() As Variant)
   3:     MsgBox “将要关闭Excel工作簿,您保存里面的数据了吗.”
   4: End Sub

步骤8:保存所有的工程文件。

步骤9:单击菜单“文件——生成MyFirstCOMAddIn.dll”,如下图所示。

MakeMyFirstCOMAddInDll

至此,这个COM加载项制作完成。

步骤10:打开Excel 2003,将会出现一个消息框,这是在COM加载项的OnConnection事件中设置的,如下图所示。

AddInInformationWin1 

关闭Excel 2003时,将会出现一个消息框,这是在COM加载项的OnDisconnection事件中设置的,如下图所示。

AddInInformationWin2

这的加载项之所以在Excel 2003会话开启时运行,是因为我们在设计加载项时选择了选项Startup,即在Excel启动时加载该加载项。下面,在Excel 2003中设置能够启动或关闭COM加载项。

步骤11:在Excel 2003中单击菜单“工具——自定义”,在“自定义”对话框中的选择“命令”选项卡,在左侧的类别列表框中选择“工具”,在右侧的命令列表框中找到“COM加载项”条目(如下图所示),并将其拖至Excel菜单栏中“工具”菜单下。单击“关闭”按钮关闭自定义对话框。

SetCOMAddinInExcel

步骤12:单击菜单“工具——COM加载项”,弹出“COM加载项”对话框,其中列出了所有可用的COM加载项,如下图所示。

COMAddinINExcel

为了使刚创建的My First COM Add-In加载项不可用,可取消其前面的复选框选择。也可以通过“删除”按钮删除该加载项。

标签: 没有标签

Excel 2007网络数据(Web Data)加载项

在Microsoft Research中的一些伙伴已经开发出了一个加载项,该加载项使得使用网页作为Excel数据源更容易。下面是一段简短的介绍:
Excel 2007 Web Data加载项提供了一个直观的用户界面,为用户从任何网页中输入感兴趣的外部数据,例如股票、天气等,到电子表格中,并保持数据时实更新。也就是说,如果网页中的数据改变,则通过单击数据刷新按钮来更新电子表格中的数据。此外,该加载项能自动从用户的选择中“学习”,并可选择地选取相似的项目以帮助节省时间。
注意,该加载项为研究版本,可以通过加载项本身发送bug。该加载项使用VSTO技术创建。可以在下面的地址中下载该加载项:
http://research.microsoft.com/research/downloads/details/db5286b6-0bb0-4668-9ebc-c3e9b43a0683/details.aspx
http://www.drexcel.cn/article.asp?id=28
下面是安装和使用该加载项的初步尝试,有兴趣的朋友可以进一步研究。
Excel 2007 Web Data Add-In
图1:Excel 2007 Web Data Add-In安装
StartUI
图2:安装后,在“数据”选项卡的“获取外部数据”组中,将“自网站”改为了下拉按钮,包含两个按钮,第一个为原来的获取外部数据,第二个是本加载项所添加的功能
UIPic
图3:单击From Web(Advanced Mode)后,开始运行
WebQUery
图4:输入网址,并单击“捕获数据(Capture Data)”按钮后的界面
CopyData
图5:将数据复制完成后,单击“import”按钮
DataInSheet
图6:数据输出到工作簿中
RefreshData
图7:单击“连接”组中的“全部刷新”按钮,对外部数据进行刷新

标签: 没有标签

VBA HTML Maker加载宏

这是由MrExcel开发的一个加载宏,可以将VB代码转换为HTML和BB代码,以便于在网页和剪贴板中显示。可以在MrExcel的网站下载VBA HTML Maker加载宏
下面简单地演示该加载宏的使用。
1、安装该加载宏,如图1所示。
pic1 图1
2、按Alt+F11组合键打开VBE编辑器,此时在菜单“工具”下将增加四个命令,如图2所示。即将所选代码转换为HTML或BB代码、将当前过程转换为HTML或BB代码。
pic2 图2
3、在VBE编辑器中输入代码:
Sub test()
    MsgBox “测试VBHtmlMaker.xla!”
End Sub
4、选择“工具”菜单中的相应命令来进行转换,如“Convert current code as HTML”命令,此时会显示如图3的消息框。
pic3  图3
单击“确定”按钮。
5、在
剪贴板中的代码如下:
<font face=Courier New><br><SPAN style=”color:#00007F”>Sub</SPAN> test()<br>    MsgBox “测试VBHtmlMaker.xla!”<br><SPAN style=”color:#00007F”>End</SPAN> <SPAN style=”color:#00007F”>Sub</SPAN><br></FONT>
6、将此代码直接粘贴到日志文章中的相应位置,结果如下:

Sub test()
    MsgBox “测试VBHtmlMaker.xla!”
End Sub

这样,很方便地将代码转换到了网页页面中。

标签: 没有标签

Excel2007中的COM加载项

文章参考:CPearson.com中的《COM Add-Ins In Excel 2007》,同时发表于fanjy.blog.excelhome.net
Excel2007中的COM加载项
下面的内容介绍了Excel2007中COM加载项的一些改变。
介绍
Excel很好地做了一些涉及到向后兼容的工作。在Excel 2000、Excel XP(2002)或Excel 2003中创建的COM加载项(CAI)不需要修改就应该能在Excel 2007中正常运行。然而,在开发应用于不同的Excel版本中的CAIs时,应该记住一些事项。
菜单和命令栏
Excel 2007修改了传统的界面,使用功能区(Ribbon)界面替换了菜单和命令栏控制结构。根据选择可以采用不同的面板组(面板是一组具有相关功能的按钮,在下图1中,选择“开始”,将显示7个面板组:剪贴板、字体、对齐方式、数字、样式、单元格、编辑,在开发阶段,面板(panels)称作chunks,不知道这些对象现在是否有正式的名称)。如果选择“开始”,将看到一组面板;如果单击“插入”,则会出现另一组面板。
ExcelRibbon
这对CAI开发意味着什么呢?意味着创建命令栏、命令栏控件或菜单项的CAI中的任何代码都不再按预料的工作。仅仅可以通过Excel 2007文件格式(xlsx或xlsm)里的Excel文件来定制功能区,在Excel 2007文件格式中包含必需的XML代码用于修改功能区。(一个Excel 2007的xlsx或xlsm文件事实上是包含大约20个文本XML数据文件的Zip文件,其中一个文件用于修改功能区。)Excel 2003文件格式(xls)、XLA加载宏、COM加载项都不能修改功能区。所有的定制,无论是在Excel 2003中已有的命令栏中的新菜单项、控件,还是新的命令栏,都将显示在功能区“加载项”中的菜单命令或自定义工具栏命令面板组中。这将混淆各加载项的命令元素。下图2为功能区“加载项”视图:

ExcelAddinRibbon

在Excel 2003和以前的版本中,可能会放置一些菜单项在“工具”菜单中、其它的在“视图”菜单中、以及“数据”菜单中,可能放置菜单项和命令栏按钮在合乎逻辑的位置。在Excel 2007中,所有的定制都被放置在加载项视图中的“菜单命令”和“工具栏命令”面板组中。
加载项
关于COM加载项的联接信息,为Excel指出了可用的CAI,它们存放在系统注册表的两个位置中的其中一个:
HKEY_CURRENT_USER\Software\Microsoft\Office\Excel\AddIns (HKCU) 或
HKEY_LOCAL_MACHINE\Software\Microsoft\Office\Excel\AddIns (HKLM)。
在Excel 2003和早期版本中,仅仅配置在HKCU中的CAIs显示在COM加载项对话框中,这避免某用户禁用在本机上为所有用户使用的CAI。在Excel 2003和早期版本中,用户仅能装载或卸载配置在HKCU中的CAIs,不能够装载或卸载配置在HKLM中的CAI。
在Excel 2007中,所有的加载项都配置在
HKEY_CURRENT_USER\Software\Microsoft\Office\Excel\AddIns 或HKEY_LOCAL_MACHINE\Software\Microsoft\Office\Excel\AddIns
在COM加载项对话框中是可见的,这意味着单个的用户可以禁用或卸载本机上所有用户使用的CAIs。

标签: 没有标签