自制Excel浮动工具条

编程入门 行业动态 更新时间:2024-10-10 06:15:24

自制Excel浮动<a href=https://www.elefans.com/category/jswz/34/1766599.html style=工具条"/>

自制Excel浮动工具条

2007/7/17更新

如果你需要此VBA加载宏,请访问

或直接提取

简体中文:

繁体中文:

 

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

一、原理

实际上每次打开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中添加如下代码,使添加按钮函数可以自动运行

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

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

更多推荐

自制Excel浮动工具条

本文发布于:2024-03-14 16:04:35,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1736833.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:工具条   Excel

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!