首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从默认的右键单击上下文菜单中添加一个函数到自定义上下文菜单中?

问从默认的右键单击上下文菜单中添加一个函数到自定义上下文菜单中?
EN

Stack Overflow用户
提问于 2015-12-01 13:38:22
回答 2查看 1.5K关注 0票数 0

是否有任何方式访问所有内置的单元格上下文菜单函数的代码?

我特别希望从AddComment上下文菜单中运行“RightClick”函数--但我已经构建了一个自定义上下文菜单。

它所做的不仅仅是添加评论。它打开注释并添加我的名字并选择它。这很好,我想在自定义上下文菜单中应用这个函数。因此,我要么需要保留该函数的代码,要么从我的自定义上下文菜单中“调用”函数本身。

编辑:我想我需要更具体一点:

  • 称为“插入注释”的标准操作位于单元格右键单击上下文菜单中。
  • 我希望将该函数复制到我自己的(自定义)右键上下文菜单中。
  • 在excel中是否有任何地方可以看到所有内置函数的实际代码?例如,我说的是右击函数。

所以,我不想劫持上下文菜单。我想使用 it!但是我已经创建了一个自定义的右键上下文菜单,其中我想从原始的右键上下文菜单中插入一个函数。

EN

回答 2

Stack Overflow用户

发布于 2015-12-01 14:05:24

您应该能够使用VBA完成从普通单元格上下文菜单中的几乎所有事情。如果使用记录宏,则可以通过菜单单击,然后查看代码以查看记录的内容。例如,用于插入注释的宏记录会产生以下代码.

代码语言:javascript
复制
Range("A1").Select
Range("A1").AddComment
Range("A1").Comment.Visible = False
Range("A1").Comment.Text Text:="Your Name:" & Chr(10) & ""

编辑

我想我一开始很怀念OP,因为我问到如何为默认的上下文菜单操作获取相应的VBA代码。我认为真正被问到的是如何“劫持”内置的上下文菜单操作本身。正如Ambie评论的那样,可以这样做,如下所示。

代码语言:javascript
复制
Sub HijackContextMenuInsertComment()
    Dim ContextMenu As CommandBar
    Set ContextMenu = Application.CommandBars("Cell")
    ContextMenu.Controls.Item(13).OnAction = "Test"
End Sub
Sub Test()
    MsgBox "I've been hijacked"
End Sub
票数 0
EN

Stack Overflow用户

发布于 2015-12-02 05:41:58

可能的解决办法:

一步步地:

  • 使用默认上下文菜单
  • 删除除“插入注释”外的所有项目
  • 将自定义函数添加到上下文菜单
  • 现在我应该有我自己的所有函数和“插入注释”函数。

为了使这一工作正常进行,我只添加了以下代码:

代码语言:javascript
复制
Dim Cnt As CommandBarControl
With Application.CommandBars("Cell")
    For Each Cnt In .Controls
        If InStr(1, Cnt.Caption, "Infoga ko") = 0 Then Cnt.Delete
    Next Cnt
End with

请注意,标题在每种语言中都是不同的。我有瑞典语,所以在英语中,它可能与“插入c”而不是"Infoga ko“一起工作。

为了获得正确的标题,可以循环如下所有控件:

代码语言:javascript
复制
For Each Cnt In .Controls
    Debug.Print Cnt.Caption
Next Cnt

运行这段代码后,我将只剩下“插入注释”函数,然后就可以开始添加自己的控件了!

更新:不,这不起作用。这个函数不能运行。单击“插入注释”函数时不会发生任何事情。奇怪吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34021820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档