财会:工具栏按钮 个性化定制

高手坐镇

题目难度:★★★☆

读者求助: 我是某公司的一名会计,经常用到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

30-f7-1-6.jpg

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