顶一下,别沉下去。给楼主一个建议:能否在关闭工作簿时提示“是否保存”。封装后,如果忘了保存,文件将不更新。
实现原理:利用VB的OLE调用与文件二进制读写(通道技术).
实现思路:总的目标就是将VB编译生成的EXE文件头与XLS数据部分捆绑结合,并在XLS关闭时能使EXE数据部分得以更新。
1、VB工程部分:用顶层窗体制作封面;对EXE(即自身)XLS数据进行读取并将其写入一定文件夹然后OLE打开它;借助时钟控件适时关闭封面窗体及退出EXE(此时XLS已经正常打开完毕了,完成VB与EXCEL的无缝连接)。
2、VBA部分:对EXCEL菜单与工具栏、图标进行自定义设置;在工作薄退出事件中增加代码,将XLS内容重新写入EXE中。
3、利用DOS的二进制COPY命令将VB的EXE部分与VBA的XLS部分结合成新的EXE文件。
这种动态EXE文件就制作完成了,它的优点是明显的:拥有自定义的图标作为EXE文件图标,拥有自定义的软件加载封面,拥有更改XLS数据的特性,而偏偏不“拥有”烦人的宏提示!!!缺点主要就是如果文档体积过于庞大,运行速度会有一定影响。
经验证,数据并不能自动更新。
[此贴子已经被作者于2005-8-27 12:25:59编辑过] |