【问题标题】:Find complete list of members for Excel VBA forms button objects查找 Excel VBA 表单按钮对象的完整成员列表
【发布时间】:2015-02-10 06:41:13
【问题描述】:

在 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”之类的东西,这些东西在 Excel VBA 中没有任何明显的记录?如果你在文档中寻找“CheckBoxes”,你会发现很多切线备注但没有实际信息,好像这是不推荐使用的代码,只是碰巧自动使用....)

【问题讨论】:

  • 更改您的 VBE 的选项以强制 Option Explicit

标签: vba excel excel-2010


【解决方案1】:

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

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

另一种创建按钮的方法:

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

【讨论】:

  • ++ 好答案。您也可以选择b 并按 F1,大多数时候它会将您带到开发人员参考。此外,如果您正在使用类,则值得按 F2 并通过对象浏览器查找类属性。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多