关于excel的功能相信大家都比较了解,而且介绍如何使用excel的书籍在市场也是随处可见,这里就不再多说了。这里要着重深入了解一下Excel的内部组织结构,常用数据结构等等。
2.1、Excel组织结构
Excel 中文档就是工作簿,每个工作簿中又包含多个工作表,图表以及宏模块。工作表是保存数据的第一级结构,每个工作表是一个二维表格,其中中包含许216行28列共65536个单元格,工作表中还包含公式,图表等等。而单元格中又含有格式,字体,颜色等信息。
任何一个工作簿都可以作为一个模板(*.xlt)保存起来,以作为以后新建的工作簿的样板。模板中可以包含以下一些信息:
u 单元格格式
u 自定义菜单,宏,和工具条
u 自定义的每个工作簿中的工作表的数量和类型
u 页码格式
u 行和列的风格
u 自定义文本,日期,公式,图表等等
通常默认的工作簿模板为Book.xlt,默认的工作表模板是Sheet.xlt。
你也可以把一个含有宏的工作簿保存为Excel加载宏(*.xla),以便为你的Excel增加功能。下面是Excel各部分的结构图:
Excel应用程序 |
||||
工作簿(Workbook) |
菜单条 |
工具条 |
||
工作表(Worksheet) |
菜单 |
工具条按钮 |
||
单元格区域(Range)和单个单元格(Cell) |
图标以及其他非excel对象 |
控件对象以及控件按钮 |
菜单项 |
|
子菜单项 |
但是这个表对我们实现Excel插件并没有多大用处,我们需要知道更详细的关于Excel内部对象之间的关系。Excel 5中有128个不同的对象,每个对象都代表着excel的一个独特的特性,每个对象都有唯一的属性和方法,通过vba或c++可以调用这些属性和方法。属性代表着对象的某个特性,可以获得某个属性,也可以改变部分属性。方法则是这个对象的功能,通过调用对象的方法,可以执行一些特定的操作。比如删除工作表等等。在excel中对象有两种不同的形式,一种是单个对象,它代表唯一的一个实例,比如Application对象只代表一个excel实例。另一种是对象集,excel中的许多对象都是代表一个集合,比如Wroksheets
对象就代表工作表集合。你可以直接操作对象集来操作集合中的所有成员,也可以通过索引编号或名字操作集合中的某个对象。Excel中的对象并不都存在于同一级中,在引用时需要逐级引用。所以对于开发人员来说牢记它们之间的引用关系是非常有必要的。在最顶层是Application对象,即Excel本身,其次是第二层,这一层中包含Workbook、Addin、Debug、Dialog、Menubar、Toolbar、Window共7个对象,这几个对象都比较直观,而且都体现在Excel界面上了,其余对象分别位于它们之下。在下面的图例中可以看到所有对象之间的层次关系。
看到这个图你是否觉得不够128个对象呢,其实这个图只是列出了所有典型的对象,对于有些像Font,Bonder等对象在大多对象中都存在,就没有全列出来。通过这个引用关系图我们就可以知道如何引用其中的某个对象了。例如我们要通过Range对象引用第一个单元格,并为它赋值,可以写成这样:
Application.Workbooks(1).Worksheets(1).Range(“A 1” ).Value = 1;
意思是为第1个工作簿的第1个工作表的“A1”单元格赋值为1。我了更直观的说明对象,我们在这一章中的例子使用VBA代码格式。
2.1.1 顶层对象(Application Object)
在Excel中最顶层只有包含一个对象,那就是Application Object,这个对象就是指Excel应用程序本身,所以也可以认为Application对象的属性代表着整个excel程序的环境,改变了它的属性就改变了其他对象所处的环境。通过这个对象就可以改变或获得Excel应用程序本身的属性,它自身有100多个属性,约60个方法。我们只简单的介绍几个以说明如何使用Application对象。
常用属性:
Capiton属性:用于设置Excel标题栏的内容,通常标题栏里显示当前编辑的文件的文件名等,通过这个属性就可以自定义标题栏的内容。
Application.Capiton = “My Custom Application”
DisplayAlerts属性:如果DisplayAlerts的属性设置为True,则显示警告信息,否则不显示。
Application.DisplayAlerts = False
Path属性:Path属性中保存着Excel的安装路径,如果你要查找Excel安装目录下的某个文件时,就可以先调用它来获得正确的安装路径。
ExcelPath = Applicaton.Path
ScreenUpdating属性:用于设置在宏执行时是否刷新Excel窗口的内容,如果设置为True则刷新,否则不刷新。默认值为True。
Application.ScreenUpdating = False
WindowState属性:用来设置Excel窗口的显示状态,它可以接收以下三种状态值:
xlNormal 普通状态,通常为默认值
xlMaximized 窗口最大化。
xlMinimized 窗口最小化。
Application.WindowState = xlNormal
常用方法:
Calculate:这个方法强制所有打开的工作簿中的所有工作表中的公式都重新计算。不用提供任何参数。
Application.Calculate
Help:打开指定的Help文件,并显示指定的帮助内容,需要传递两个参数:
第一个为帮助文件路径,第二个为要显示的帮助的ID值。
Application.Help helpFile:=”Mainxl.hlp”,helpContextId: