财会:工具栏按钮 个性化定制
高手坐镇
题目难度:★★★☆
读者求助: 我是某公司的一名会计,经常用到Excel表格。在工作中,常常要用到“商品入库”、“商品出库”和“库存打印”三个特殊的宏。由于宏用起来不方便,能不能将宏变为工具栏按钮?我的这个设想可以实现吗?
当然可以,利用CommandBar对象可以在不改变Excel系统菜单的前提下新建一个工具栏。关键代码如下(完整代码下载地址:http://www.icpcw.com/bzsoft):
Private Sub Workbook_Open()
On Error Resume Next
Dim mynum As Integer, myname As String, mycom As String
'如果存在同名的工具栏则将其删除
Application.CommandBars("库存管理").Delete
'在工作表顶部创建名为库存管理的工具栏
Application.CommandBars.Add(Name:= "库存管理", _
Position:=msoBarTop).Visible = True
'分别添加3个按钮并设置按钮格式
myname = "商品入库": mycon = "rk": mynum = 1
Call cmdstyle(myname, mynum, mycon)
myname = "商品出库": mycon = "ck": mynum = 2
Call cmdstyle(myname, mynum, mycon)
myname = "库存打印": mycon = "dy": mynum = 3
Call cmdstyle(myname, mynum, mycon)
End Sub

如果你想在关闭当前工作簿的同时删除创建的工具栏,那么在当前工作簿的“BeforeClose”事件中写入代码“Application.CommandBars("库存管理").Delete”即可。