3 Excel条件格式化工具的具体实现 3.1插件接口方法 内容来自论文无忧网 www.paper51.com 当VB运行时,在Add-In菜单中装载组件以后,VB就会调用组件中IDTExtensibility对象中的OnConnection方法。在OnConnection方法里定义Application对象变量,并调用CommandBars.Add方法,就可在程序运行时加载工具栏。 内容来自论文无忧网 www.paper51.com
在“引用”对话框中选择“Microsoft Office 8.0 Object library”复选框,可以通过“对象浏览器”访问并浏览各种命令条对象。 内容来自www.paper51.com 因为菜单和工具栏属于相同的对象库,它们都将通过CommandBarControl对象被引用。一个菜单条命令条可以包括几个菜单项,每个菜单项本身也是一个命令条,而且它又可以包括若干个菜单命令,每条命令依然是一个命令条。利用这种模式可以很容易地在开发环境中放置外接程序。 copyright paper51.com 使用commandBars集合对象用外接程序来添加命令栏和控件。在OnConnection事件过程定义Application、commandbars对象变量,此过程创建新的命令条按钮,并返回对它的对象变量,并定义commandbar上按键的事件。 内容来自论文无忧网 www.paper51.com
3.2 Excel插件的实现 copyright paper51.com 3.2.1插件实现的功能 http://www.paper51.com (1)在Excel中建立3列:姓名,平时,考试。并输入模拟数据。 内容来自www.paper51.com 内容来自论文无忧网 www.paper51.com
(2)选择所有学生姓名单元; paper51.com paper51.com (3)点击插件的按键,出现对话框。 内容来自www.paper51.com
(4)在其中输入格式化的条件(类似于Excel的公式,只是将相对单元 内容来自www.paper51.com
位置的表示方式,加了一个@符号。如:sum(@A1:@D1)>=4, 表示 内容来自论文无忧网 www.paper51.com
将A1到D1单元的数据相加,判断其和是否大于等于4。相对的含义是:对当前单元而言,求和的是A1到D1。如果当前单元的行列加了1,则求和的将是B2到E2。(即,求和的单元相对于当前单元的偏移量不变)。本例中输入:B2*30/100+C2*70/100<60 http://www.paper51.com
(5)点击字体按键,选择字体、颜色等; 内容来自www.paper51.com
(6)点击填充按键,选择填充色和模式; 内容来自www.paper51.com http://www.paper51.com
(7)点击“格式化”按键。 内容来自www.paper51.com
3.2.2具体功能实现 内容来自论文无忧网 www.paper51.com 3.2.2.1设计器 内容来自www.paper51.com paper51.com 图7 设计器 copyright paper51.com
3.2.2.2 窗体的实现 paper51.com 内容来自论文无忧网 www.paper51.com 图8 窗体 内容来自论文无忧网 www.paper51.com 设置字体按钮: 内容来自www.paper51.com paper51.com 图9 设置字体按钮 内容来自www.paper51.com 选择字体 内容来自www.paper51.com Private SubcmdSetFont_Click() 内容来自论文无忧网 www.paper51.com 选择一个临时单元 内容来自www.paper51.com Dim rng As Range copyright paper51.com Set rng =mExcelApp.Selection 内容来自论文无忧网 www.paper51.com
保存其原有字体设置 内容来自www.paper51.com Dim size, italic, underline,strikethrough, bold, color, style, name paper51.com size = rng.Font.size paper51.com italic = rng.Font.italic http://www.paper51.com
underline =rng.Font.underline paper51.com strikethrough =rng.Font.strikethrough 内容来自论文无忧网 www.paper51.com bold = rng.Font.bold copyright paper51.com color = rng.Font.color 内容来自www.paper51.com style = rng.Font.FontStyle paper51.com name = rng.Font.name http://www.paper51.com
使用Excel的标准对话框设置其字体 http://www.paper51.com
mExcelApp.Dialogs(xlDialogFontProperties).Show http://www.paper51.com 保存其字体设置 paper51.com mFontsize = rng.Font.size copyright paper51.com mFontitalic =rng.Font.italic 内容来自www.paper51.com mFontunderline =rng.Font.underline paper51.com mFontstrikethrough =rng.Font.strikethrough copyright paper51.com mFontBold = rng.Font.bold http://www.paper51.com
mFontColor = rng.Font.color 内容来自论文无忧网 www.paper51.com mFontStyle =rng.Font.FontStyle copyright paper51.com mFontName = rng.Font.name paper51.com
恢复其原有字体设置 copyright paper51.com rng.Font.size = size http://www.paper51.com
rng.Font.italic = italic 内容来自www.paper51.com rng.Font.underline =underline 内容来自论文无忧网 www.paper51.com
rng.Font.strikethrough =strikethrough copyright paper51.com rng.Font.bold = bold 内容来自www.paper51.com rng.Font.color = color copyright paper51.com
rng.Font.FontStyle = style copyright paper51.com rng.Font.name = name copyright paper51.com End Sub 内容来自论文无忧网 www.paper51.com 单元填充按钮: 内容来自论文无忧网 www.paper51.com
内容来自论文无忧网 www.paper51.com
图10单元填充按钮 paper51.com PrivateSub cmdBackGround_Click() paper51.com 选择一个临时单元 内容来自www.paper51.com Dim rng As Range 内容来自论文无忧网 www.paper51.com Set rng =mExcelApp.Selection 内容来自论文无忧网 www.paper51.com 保留原有设置 copyright paper51.com
Dim clrIndex, pClrIndex, p,pClr paper51.com p = rng.Interior.Pattern 内容来自论文无忧网 www.paper51.com clrIndex =rng.Interior.ColorIndex 内容来自www.paper51.com pClr =rng.Interior.PatternColor 内容来自www.paper51.com pClrIndex =rng.Interior.PatternColorIndex http://www.paper51.com 设置新的填充模式 内容来自论文无忧网 www.paper51.com mExcelApp.Dialogs(xlDialogPatterns).Show 内容来自论文无忧网 www.paper51.com 保存设置 copyright paper51.com mPattern =rng.Interior.Pattern http://www.paper51.com mColorIndex =rng.Interior.ColorIndex 内容来自论文无忧网 www.paper51.com mPatternColor =rng.Interior.PatternColor 内容来自论文无忧网 www.paper51.com mPatternColorIndex =rng.Interior.PatternColorIndex 内容来自论文无忧网 www.paper51.com 恢复临时单元以前设置 http://www.paper51.com rng.Interior.Pattern = p http://www.paper51.com rng.Interior.ColorIndex =clrIndex copyright paper51.com rng.Interior.PatternColor =pClr 内容来自论文无忧网 www.paper51.com rng.Interior.PatternColorIndex= pClrIndex 内容来自www.paper51.com End Sub paper51.com 保存单元格式设置的变量 http://www.paper51.com Private SubcmdCancel_Click() 内容来自www.paper51.com Unload Me copyright paper51.com End Sub copyright paper51.com Private SubcmdFormat_Click() http://www.paper51.com FormatSelectedCellsTrim(txtFormula) paper51.com
MsgBox "格式化完成!" 内容来自www.paper51.com Unload Me 内容来自论文无忧网 www.paper51.com
End Sub 内容来自论文无忧网 www.paper51.com |