EXCEL中的XLSM文件是有启用宏(VBA)的功能的工作表,如果使用解压的方式打开,你会发现不一样的结果,居然可以打开,在解压文件中存在_rels、docProps、xl这3个文件夹以及[Content_Types].xml文件。一个Excel文件实际上就是一个压缩文件,而这个压缩包中的文件,基本上都是由XML文件组成。
现在分析解压文件中结构
_rels文件夹:
Id:为任意字符串,在.rels文件中必须是唯一的
Type:表示关系的类型
Target:指定包含关系的目标的文件夹和文件。
docProps文件夹:包含各种XML文件,描述文件属性和应用程序设置。
app.xml和core.xml两个文件中包含着:创建者的名字、修改的和创建的日期等。
xl文件夹:包含文件的核心部分。
根据工作簿中的内容,该文件夹中含有一些子文件夹,还含工作簿设置的XML文件,如果工作簿中含有VBA代码,那么文件夹中还有以bin为扩展名的二进制文件。
Content_Types.xml:列出了包括在Excel文件程序包中其它部件的内容类型。
假设解压文件中的存在customUI文件夹,则说明存在Ribbon自定义功能区。
这里也介绍下Ribbon自定义功能区的创建步骤:
(1)创建一个名为customUI的文件夹
(2)customUI文件夹中,创建一个名为customUI.xml的文件,写入XML代码(添加自定义功能区)
(3)创建一个名为demo的工作簿。
(4)添加customUI文件夹到demo工作簿文件中(压缩文件方式打开添加)。
(5)修改.rels文件夹中的.rels文件(和customUI文件夹的联系)
(6)双击打开demo工簿!成功!
RibbonX使用简单易懂的可扩展的标识语言(XML)。
如果从事过网页设计,那么XML与HTML的语法结构是相同的,非常易习。
完整的自定义功能区:RibbobX(UI界面设计)+VBA(功能设计)
RibbonX的元素
选项卡(Tabs)
组(Groups)
控件(Controls)
customUI.xml的文件代码eg:
最后利用VBA中的名称与onAction进行回调,回调有点像事件过程一样,一旦触发,就会运行程序。(如onAction),回调需要在工作簿中写代码。必须保存为宏的文件格式。否则VBA代码会丢失。
例如biao为回调值
本文地址: