查找Excel VBA表单按钮对象的完整成员列表

时间:2014-08-28 06:41:03

标签: excel vba excel-vba excel-2010

在Excel 2010中,使用VBA代码创建宏调用按钮。

注意:这实际上是一个关于在何处找到对象类型的文档支持的问题,而不是编码事物。

所以...在宏录音机上工作,我得到了这个(假设我想把单元格M8变成一个按钮):

Sub MakeMyButton()

    ' Some basic definitions
    StarterRow = 8
    MyLeft = Cells(StarterRow, "M").Left
    MyTop = Cells(StarterRow, "M").Top
    MyHeight = Cells(StarterRow, "M").Height
    MyWidth = Cells(StarterRow, "M").Width

    ' Now comes the creation bit        
    ActiveSheet.Buttons.Add(MyLeft, MyTop, MyWidth, MyHeight).Select
    With Selection
        .AltText = "View"
        .OnAction = "afRoomText"
        ' .Value = xlOff
        ' .LinkedCell = "M" & StarterRow
        ' .Display3DShading = True
    End With
End Sub

问题是,当然,.Value和.LinkedCell以及.Display3DShading(此处标记为备注)对Buttons.Add无效 - 足够公平。但我似乎找不到一个对这个对象有效的综合列表!谁知道在哪里看?

(顺便说一下,为什么唱片宏观事物会使用诸如" CheckBoxes.Add&#34之类的东西?这些在Excel VBA中没有任何明显的记录?如果你去寻找" CheckBoxes&# 34;在文档中,你会发现很多切线的评论,但是没有实际的信息,好像这是不恰当的代码,恰好是自动使用....)

1 个答案:

答案 0 :(得分:2)

始终使用Dim声明所有变量。对于对象(例如Button),这将使您可以访问自动完成。例如:

Dim b As Button ' Aha!
Set b = ActiveSheet.Buttons.Add(324, 102, 108, 51)

Autocompletion for Button object

创建按钮的另一种方法:

Dim but As Shape
Dim sh As Worksheet

Set sh = ActiveSheet
Set but = sh.Shapes.AddFormControl(xlButtonControl, 100, 100, 100, 100)

With but
    .AlternativeText = "View"
    .OnAction = "afRoomText"
    With .TextFrame
        .Characters.Text = "Press Me"
        .Characters.Font.Color = RGB(255, 50, 50)
    End With
End With