如何在Word/Excel等Office軟体右鍵選單中增加項目 |
答題得分者是:Kingron
|
frog1
一般會員 發表:25 回覆:40 積分:18 註冊:2007-01-24 發送簡訊給我 |
|
Kingron
中階會員 發表:1 回覆:51 積分:60 註冊:2005-09-14 發送簡訊給我 |
很简单,写一个宏,实现你的功能,然后在内需要的菜单中,创建一个菜单项,也就是CommandBars中,添加一个按钮,然后设置OnAction="你的宏的名字"就好了。
Word中用Delphi插入宏的代码: var vc:_VBComponents; begin vc:=WordApplication1.VBE.ActiveVBProject.VBComponents; with vc.Item(2).CodeModule do begin InsertLines(1,'Sub MyMacro'); InsertLines(2,'msgbox "this is a test"'); InsertLines(3,'End Sub '); end; end; Office中插入菜单,关联宏命令的代码: procedure TForm1.Button2Click(Sender: TObject); var i:Integer; b:CommandBarPopup; c:CommandBarButton; begin if WordApplication1.CommandBars.ActiveMenuBar.Enabled then begin with WordApplication1.CommandBars.ActiveMenuBar do begin ListBox1.Clear; for i:=1 to Controls.Count do ListBox1.Items.Add(Controls[i].Caption); Controls[5].Set_Visible(false); Controls[Controls.Count].Set_Caption('My Test'); b:=Controls.Add(msoControlpopup,EmptyParam,EmptyParam,EmptyParam,true) as commandbarpopup; //创建menuitem with b do begin Set_Caption('Test'); c:=Controls.Add(msoControlButton,EmptyParam,EmptyParam,EmptyParam,true) as CommandBarButton; c.Set_Caption('Test'); c.Set_OnAction('MyMacro''); // Action ITEM end; end; end; end; Execel中类似处理。
------
超级猛料:http://kingron.delphibbs.com |
frog1
一般會員 發表:25 回覆:40 積分:18 註冊:2007-01-24 發送簡訊給我 |
|
Kingron
中階會員 發表:1 回覆:51 積分:60 註冊:2005-09-14 發送簡訊給我 |
这个可能有两个可以达到的:
一个是利用Word的模版和加载项和宏来实现。这个比较容易,推荐,缺点是受宏的安全性的限制。具体做法是: 启动Word,按Alt F11,插入一个宏,代码如下: Sub RunApp() Shell("C:\WINDOWS\CALC.EXE", 1); end Sub 保存后,关闭回到Word,然后自定义工具栏,添加一个菜单项或者按钮,然后设定其动作为宏RunApp即可。 另外一个是实现Word的COM Add-in,也就是做一个DLL,注册到Word中,难度比较大,一下子说不清楚了,你可以在网络上面找找相关资料。
------
超级猛料:http://kingron.delphibbs.com |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |