mushar 发表于 2008-11-15 22:07:00

[求助]右键怎样调用已定义的宏

<p>小弟代码如下:</p><p>Sub myhEllo()<br/>&nbsp;<br/>&nbsp;MsgBox "Hello"<br/>&nbsp;<br/>End Sub</p><p>Sub AddMenuItemToshortcutMenu()<br/>&nbsp;&nbsp;&nbsp; Dim currMenuGroup As AcadMenuGroup<br/>&nbsp;&nbsp;&nbsp; Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(1)</p><p>&nbsp;&nbsp;&nbsp; ' 查找快捷菜单并将其指定给<br/>&nbsp;&nbsp;&nbsp; ' shortcutMenu 变量<br/>&nbsp;&nbsp;&nbsp; Dim scMenu As AcadPopupMenu<br/>&nbsp;&nbsp;&nbsp; Dim entry As AcadPopupMenu<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; On Error Resume Next<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; For Each entry In currMenuGroup.Menus&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If entry.Name = "编辑菜单" Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Set scMenu = entry<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For i = entry.Count - 1 To 0 Step -1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; entry.Item(i).Delete<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Next&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If</p><p>&nbsp;&nbsp;&nbsp; Next entry</p><p>&nbsp;&nbsp;&nbsp; ' 向快捷菜单添加菜单项<br/>&nbsp;&nbsp;&nbsp; Dim newMenuItem As AcadPopupMenuItem<br/>&nbsp;&nbsp;&nbsp; Dim openMacro As String<br/>&nbsp;&nbsp;&nbsp; 'Dim myhEllo As String<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; ' 给宏指定“ESC ESC _open”的 VBA 等价值<br/>&nbsp;&nbsp;&nbsp; 'myhEllo = Chr(3) + Chr(3) + "_vbarun" &amp; " " &amp; "D:\Project.dvb!ThisDrawing.myhello " &amp; Chr(13)<br/>&nbsp;&nbsp;&nbsp; matchpropMacro = Chr(3) + Chr(3) + "_matchprop "</p><p>&nbsp;&nbsp;&nbsp; Set newMenuItem = scMenu.AddMenuItem("", Chr(Asc("&amp;")) + "格式刷", matchpropMacro)<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp; <font size="4"><u>Set newMenuItem = scMenu.AddMenuItem("", Chr(Asc("&amp;")) + "公差标注", <font color="#ff0000">myhEllo</font>)</u></font>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp; <br/>End Sub<br/></p><p>问题:怎样才能使<font color="#ff0000" size="4"><u>myhEllo</u><font size="1"><font color="#000000">调用我最开始定义的sub myhEllo();</font></font></font></p><p><font size="1">另外,如果我的sub myhEllo()定义在另外一个工程文件里面怎么调用呢?</font></p><p><font size="1">请指教。</font></p><p><font size="1">谢谢先</font></p>

mushar 发表于 2008-11-15 23:26:00

本帖最后由 作者 于 2008-11-17 21:30:14 编辑 <br /><br /> <p>用下面这种方法已调试成功,但总觉得很别扭:为什么我是在同一模块里定义的宏不能相互直接调用,还必须得借用lisp调用!?</p><p>请赐教。</p><p></p>
页: [1]
查看完整版本: [求助]右键怎样调用已定义的宏