首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >EXCEL VBA :用于激活自动形状绘制的按钮

EXCEL VBA :用于激活自动形状绘制的按钮
EN

Stack Overflow用户
提问于 2018-07-11 19:22:18
回答 3查看 261关注 0票数 0

我被卡住了。我找遍了上上下下,到处找。我在那里找不到解决方案。

是否可以通过表单控制按钮激活AutoShapes对象中的线条工具?

我知道如何通过宏从固定位置绘制一条线,但我希望用户绘制自己的线。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ActiveSheet.Shapes.AddConnector(msoConnectorStraight, 88.8, 447.6, 168.6, 480.6 _
    ).Select

有没有一种方法可以激活绘图工具,而不是实际绘制它,并允许用户自己完成其余的过程?

先谢谢你,

Teebee

EN

回答 3

Stack Overflow用户

发布于 2018-07-11 19:57:01

2007年前,一切都是带有IDCommandBarButton。获得该CommandBarButton后,就可以调用它的Execute方法。

Office2007去掉了命令栏,引入了功能区。一些命令栏仍然可用,你可以像以前一样调用它们,但据我所知,没有与“形状”或“连接器”远程相关的CommandBarButton

我正在使用这个方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Public Sub FindCmdBarControl(ByVal name As String)
    Dim cmdbar As CommandBar
    For Each cmdbar In Application.CommandBars
        Dim ctrl As CommandBarControl
        For Each ctrl In cmdbar.Controls
            If ctrl.TooltipText Like "*" & name & "*" Or ctrl.Caption Like "*" & name & "*" Then
                Debug.Print cmdbar.name, ctrl.Caption, ctrl.TooltipText, ctrl.ID
            End If
        Next
    Next
End Sub

运行FindCmdBarControl "line"的...but会产生以下输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Formatting    &Underline    &Underline (Ctrl+U)          115 
Cell          Sp&arklines                  31623 
Series        Add T&rendline...           Add T&rendline...            914 
Format Data Series          Add T&rendline...           Add T&rendline...            914 
List Range Popup            Sp&arklines                  31623 
Nil           &Line         Insert Line Sparkline        18927 
Nil           &Column       Insert Column Sparkline      18928 
Nil           &Win/Loss     Insert Win/Loss Sparkline    18929 
Nil           Edit &Single Sparkline's Data...          Edit &Single Sparkline's Data...           19223 
Nil           &Group        Group Selected Sparklines    19226 
Nil           &Ungroup      Ungroup Selected Sparklines  19227 
Nil           &Clear Selected Sparklines  &Clear Selected Sparklines   19229 
Nil           C&lear Selected Sparkline Groups          C&lear Selected Sparkline Groups           19230 
Nil           &Hidden && Empty Cells...   Sparkline Hidden && Empty Cells            19224 
Nil           &More Colors...             More Sparkline Colors        19451 
Nil           Custom &Weight...           Sparkline Custom Weight      19453 
Nil           &Line         Convert to Line Sparkline    20450 
Nil           &Column       Convert to Column Sparkline  20451 
Nil           &Win/Loss     Convert to Win/Loss Sparkline              20452 
Nil           &More Colors...             More Sparkline Negative Point Colors       20473 
Nil           &More Colors...             More Sparkline Marker Colors               20474 
Nil           &More Colors...             More Sparkline High Point Colors           20475 
Nil           &More Colors...             More Sparkline Low Point Colors            20476 
Nil           &More Colors...             More Sparkline First Point Colors          20477 
Nil           &More Colors...             More Sparkline Last Point Colors           20478 
Line Color    &More Outline Colors...     &More Outline Colors...      1052 
Built-in Menus              &Group and Outline                         30032 

因此,假设您想要调用&Underline命令(ID 115),您可以这样做:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Application.CommandBars("Formatting").FindControl(ID:=115).Execute

运行FindCmdBarControl "connector"没有任何结果,而且我也没有想法了。看看你是否能找到你要找的命令ID ...也就是说,Ribbon中已经有了一个内置按钮,它可以执行您想要的操作(让用户绘制一个连接器)……

票数 0
EN

Stack Overflow用户

发布于 2018-07-11 21:53:09

非常感谢您的回复。我设法在Connectors中找到了ID。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Application.CommandBars("Connectors").FindControl(ID:=1042).Execute
票数 0
EN

Stack Overflow用户

发布于 2020-04-07 08:44:49

只需指出正确的ID:

Commandbar =“绘图”

Controlname=“行”(&L)

ID = 130

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

https://stackoverflow.com/questions/51292849

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文