自制Excel浮动工具条

来源:互联网 发布:淘宝淘口令api接口 编辑:程序博客网 时间:2024/04/28 18:19

2007/7/17更新

如果你需要此VBA加载宏,请访问 http://my.mofile.com/benjaminwan

或直接提取

简体中文:http://pickup.mofile.com/5505481867922136

繁体中文:http://pickup.mofile.com/0900889919321666

 

本文假设读者有一定的ExcelVBA基础。故某些基础问题不做详解。

一、原理

实际上每次打开Excel,也会每次都加载宏。

故想让浮动工具条在每次打开Excel后都出现,只要在你写程序的Excel文件的Thisworkbook里做些手脚就可以了。

 

如果是XLA 文件,VBA入口为 Workbook_AddinInstall/Workbook_AddinUninstall

如果是XLS 文件,VBA入口为 Workbook_Open/Workbook_BeforeClose

一个是打开后执行的(可以用于加载工具条),一个是要关闭前执行(可以用来卸载工具条)

 

二、先做一个添加工具条函数吧

先添加一个模块,然后在这个模块中写入如下语句

先定义一下工具条的名字及工具条上按钮的名字

Public Const TECH_TOOLBAR_NAME As String = "技术工具箱"

Public Const CPK_TOOL_NAME As String = "CPK工具"

Public Const MAP_TOOL_NAME As String = "单分布图工具"

Public Const Multi_MAP_TOOL_NAME As String = "对比分布图工具"

Public Const STAMP_TOOL_NAME As String = "电子印章工具"

Public Const ABOUT_TOOL_NAME As String = "关于"

 

下面写一个添加工具条的函数

Public Sub AddToolbar()

Dim mybar As Object

 

'添加工具条,msoBarTop即代表浮动工具条

Application.CommandBars.Add Name:=TECH_TOOLBAR_NAME, >

CommandBars(TECH_TOOLBAR_NAME).Visible = True

 

'添加CPK按钮,Before:=1代表这个按钮在工具条的第一格

Set mybar = Application.CommandBars(TECH_TOOLBAR_NAME).Controls.Add(Type:=msoControlButton, Before:=1)

ThisWorkbook.Worksheets("source").Shapes("Icon_CPK").Copy  '设置按钮图标

'这一步要先在此文档里建一个名为source的工作表,然后再这工作表里帖入一个图像或艺

术字,并把这个图像的名称改为Icon_CPK

With mybar

.OnAction = "show_CPK_window"   '按下此按钮要执行的函数

.PasteFace

.TooltipText = CPK_TOOL_NAME    '鼠标停在此按钮上要显示的文字

End With

 

'添加单分布图工具按钮

Set mybar = Application.CommandBars(TECH_TOOLBAR_NAME).Controls.Add(Type:=msoControlButton, Before:=2)

ThisWorkbook.Worksheets("source").Shapes("Icon_MAP").Copy

With mybar

.OnAction = "show_MAP_window"

.PasteFace

.TooltipText = MAP_TOOL_NAME

End With

 

'添加对比分布图工具按钮

Set mybar = Application.CommandBars(TECH_TOOLBAR_NAME).Controls.Add(Type:=msoControlButton, Before:=3)

ThisWorkbook.Worksheets("source").Shapes("ICON_MAP_Multi").Copy

With mybar

.OnAction = "show_multi_MAP_window"

.PasteFace

.TooltipText = Multi_MAP_TOOL_NAME

End With

 

'添加电子印章工具按钮

Set mybar = Application.CommandBars(TECH_TOOLBAR_NAME).Controls.Add(Type:=msoControlButton, Before:=4)

ThisWorkbook.Worksheets("source").Shapes("ICON_STAMP").Copy

With mybar

.OnAction = "show_STAMP_window"

.PasteFace

.TooltipText = STAMP_TOOL_NAME

End With

 

'添加about按钮

Set mybar = Application.CommandBars(TECH_TOOLBAR_NAME).Controls.Add(Type:=msoControlButton, Before:=5)

ThisWorkbook.Worksheets("source").Shapes("ICON_about").Copy

With mybar

.OnAction = "show_about_window"

.PasteFace

.TooltipText = ABOUT_TOOL_NAME

End With

End Sub

 

三、删除工具条

Public Sub Delmenu()

Application.CommandBars(TECH_TOOLBAR_NAME).Delete

End Sub

 

四、在Thisworkbook中添加如下代码,使添加按钮函数可以自动运行

'下代码可以实现:不论xlsxla都能够自动添加按钮

Private Sub Workbook_AddinInstall()

Application.ScreenUpdating = False

If GetSetting("TECH_tools", "Startup", "toolbar") = "" Then

SaveSetting "TECH_tools", "Startup", "toolbar", "1"

Call AddToolbar

End If

Application.ScreenUpdating = True

End Sub

 

Private Sub Workbook_AddinUninstall()

Dim tempbar As CommandBars

On Error Resume Next

If Application.CommandBars(TECH_TOOLBAR_NAME).Name = TECH_TOOLBAR_NAME Then

End If

If Err.Number <> 0 Then

Err.Clear

SaveSetting "TECH_tools", "Startup", "toolbar", ""

End If

End Sub

 

Private Sub Workbook_Open()

Call Workbook_AddinInstall

End Sub

 

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Call Workbook_AddinUninstall

End Sub

------------------------------------------

benjaminwan

2007-6-17

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 感冒咳嗽鼻子不通气怎么办 宝宝感冒不会擤鼻涕怎么办 新生儿鼻腔里有鼻涕怎么办 宝宝鼻腔有鼻涕出不来怎么办 怀孕的人感冒了怎么办 孕37周感冒咳嗽怎么办 吹鼻涕耳朵堵了怎么办 怀孕的孔雀鱼生病了怎么办 生病了咳嗽一直不好怎么办 宝宝生病治疗后咳嗽怎么办 2个月宝宝老是生病怎么办 2个月的哈士奇生病怎么办 怀孕的猫生病了怎么办 宝宝生病咳嗽啥都不吃怎么办 怀孕了感冒了怎么办啊 2个月宝宝生病了怎么办 刚刚怀孕了就生病了怎么办 一岁多宝宝总是发烧咳嗽生病怎么办 7个月宝宝生病怎么办 4个月宝宝老是生病怎么办 孕早期嗓子有痰怎么办 鼻炎早晨起床鼻涕带血怎么办 鼻子破皮了结痂怎么办 擤鼻子耳朵好像堵住了怎么办 鼻子和脸上起皮怎么办 鼻子擦鼻涕擦红怎么办 鼻子下面擦红了怎么办 鼻子擤鼻涕破皮怎么办 哭完鼻子不通气怎么办 擦鼻子擦多了疼怎么办 擤鼻涕时耳朵听不见了怎么办 吸鼻涕耳朵感觉被塞怎么办 擤鼻涕多了头疼怎么办 鼻子擤出鼻息肉怎么办 擤鼻涕鼻子破了怎么办 下水道里有鼻涕虫的怎么办 家里井口处有很多鼻涕虫怎么办 花生地里有蜗牛怎么办 菜园里有好多虫怎么办 心里莫名的急该怎么办 老感觉心烦气燥怎么办