Office中国论坛/Access中国论坛

标题: 【求助】添加按钮 [打印本页]

作者: yj001    时间: 2009-2-26 11:29
标题: 【求助】添加按钮
请问:
如何在菜单栏上添加一个按钮?
在打开excel时,自动添加一个按钮,关闭时删掉该按钮。
例如,我要添加一个按钮“统计”,点击后,会自动去调用“统计子程序”。
能不能给出代码?
谢谢!
作者: pureshadow    时间: 2009-2-26 13:11
添加:
   ActiveSheet.Buttons.Add(....).Select
    Selection.OnAction = "Macro2"
删除:
    ActiveSheet.Shapes("Button n").Delete
作者: pureshadow    时间: 2009-2-26 13:11
这个只需要录个宏就可以实现了
作者: yj001    时间: 2009-2-26 13:47
谢谢版主。
只是我用2000或2003录的宏,只添加了一个空白的按钮,也不会执行。
能不能麻烦版主帮我录一下,把代码贴出来?

谢谢!
作者: pureshadow    时间: 2009-2-26 18:09
代码在二楼已贴出,只要把里面一些数据改成你自己工作表里的即可。
作者: yj001    时间: 2009-2-27 10:14
不好意思,我是新手。还是不太明白。
Sub openmenu()
ActiveSheet.Buttons.Add(....).Select
    Selection.OnAction = "Macro2"
End Sub
其中Selection.OnAction = "Macro2"我懂,是点击按钮后调用"Macro2"宏。
前面一句ActiveSheet.Buttons.Add(....).Select,好像是语法错误。add(....)是不是add(,,,,)?
还有,add(,,,,)里面的参数我不会填。能不能再说详细一点,最好举个例子做一遍。
再次感谢!
作者: pureshadow    时间: 2009-2-27 12:33
add 里面的就是按钮大小的数字
这会在外面,EXCEL不太好用。
这些都是录出来的宏,楼主自己录一下也就可以了。
作者: yj001    时间: 2009-2-27 13:56
我录制的宏是这样的,根本达不到我的要求。
按钮的名称不对,点击后不执行子程序。
Sub 宏1()
    Application.CommandBars("Worksheet Menu Bar").Controls.Add Type:= _
        msoControlButton, ID:=2950, Before:=12
End Sub

录制的宏中根本没有我改的按钮名称,也没有指定执行的宏名。

不知能不能帮我。
再次感谢。
作者: pureshadow    时间: 2009-2-27 23:33
本帖最后由 pureshadow 于 2009-2-27 23:37 编辑

add(,,,) 这里就是四个数字,分别代表离左边线距离、离右边线距离、窗体宽度、窗体高度
另外,你录出来的宏这么奇怪,是不是哪一步没操作对呢,下面的GIF参照一下:
作者: yj001    时间: 2009-2-28 11:44
谢谢!
您是在工作表中增加了一个按钮,这个我会。但是这样的按钮不方便。

我想要在菜单栏(帮助的旁边)上添加一个按钮。
录制方法是工具栏--自定义--命令中找到宏--然后右面有自定义按钮。改掉按钮名称,再指定宏。
作者: pureshadow    时间: 2009-2-28 12:45
录制的代码是可以执行的,但是如何指定宏做不到。
如果需要达到打开时出现,关闭时消失,那改用按钮操作也不坏呀。
作者: yj001    时间: 2009-2-28 14:38
在菜单栏上添加菜单是可以实现的,也有代码。我想添加按钮也应该有办法。既然手工可以加,那么vba也可以实现。
做在菜单栏上比较规整好看。也比较节省空间。按钮做在工具栏上也可以,就是要占有空间。
做在工作表上不太方便,会遮盖下面的内容,工作表的内容移动时,会找不到按钮。

实在不行的话,那就算了。
还是要感谢你!

以下代码是做在工具栏上的,是别人帮我做的。
Sub CreateToolBar()
    On Error Resume Next
    CommandBars("Custom Toolbar").Delete
    On Error GoTo 0
    With CommandBars.Add(Name:="Custom Toolbar", Position:=msoBarTop)
        .Visible = True
        With .Controls.Add(Type:=msoControlButton)
            .Caption = "统计"
            .Style = msoButtonCaption
            .TooltipText = "统计"
            .OnAction = "MakeSum"
        End With
    End With
End Sub

Sub RemoveToolBar()
    On Error Resume Next
    CommandBars("Custom Toolbar").Delete
End Sub




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3