全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:6813
推到 Plurk!
推到 Facebook!

如何在Word/Excel等Office軟体右鍵選單中增加項目

答題得分者是:Kingron
frog1
一般會員


發表:25
回覆:40
積分:18
註冊:2007-01-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-10-29 12:44:55 IP:219.81.xxx.xxx 訂閱
Hi,各位前輩
我需要在Word/Excel等Office軟体右鍵選單中增加項目, 可以點選執行自己所做的功能, 不知如何下手
找了許多資料, 像在機碼上增加, 或用ContextMenu等, 都不像是我要的
我是要新增在編輯區或功能列上按滑鼠右鍵那個選單中
Word在自訂功能列中的'快顯功能表'中, 有找到可以新增, 但Excel找不到, 但這只能手動新增,
希望可以如改機碼,或用ContextMenu 一般可以用程式新增修改
盼前輩指點

Kingron
中階會員


發表:1
回覆:51
積分:60
註冊:2005-09-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-10-30 09:25:33 IP:61.143.xxx.xxx 訂閱
很简单,写一个宏,实现你的功能,然后在内需要的菜单中,创建一个菜单项,也就是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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-10-30 15:18:41 IP:219.81.xxx.xxx 訂閱
Hi, Kingron         
感謝你的回覆, 您所提的是在AP中開啓 WORD後的功能嗎
我希望的是USER使用 WORD時,右鍵選單有一項是我加入去的, USER點選後執行我的AP
可以再給我方向嗎, 如在WORD的那一個檔是控制右鍵選單, 我可以如何加入我的項目, 如何讓它連結到的的AP
Kingron
中階會員


發表:1
回覆:51
積分:60
註冊:2005-09-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-10-30 15:38:11 IP:61.143.xxx.xxx 訂閱
这个可能有两个可以达到的:
一个是利用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
系統時間:2024-04-25 22:44:02
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!