国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

在Excel中建立自定義菜單項

2024-07-21 02:24:02
字體:
來源:轉載
供稿:網(wǎng)友
演練:在excel中建立自定義菜單項



brian a. randell

mcw technologies, llc

september 2003

applies to:

microsoft® visual studio® tools for the microsoft office system

microsoft office excel 2003

microsoft visual studio .net 2003

概述:office commandbar對象提供了增加菜單項和工具條按鈕代碼的途徑。在這篇演練中,你將建立自定義菜單項目下的菜單條,并且增加代碼來響應office菜單。

內容:

介紹

建立菜單和工具條項目是微軟office的一個核心特點,雖然這次試驗是示范在微軟office excel 2003中使用這些項目,但是這些操作在office word中是類似的。(不同之處在于在word中菜單名是menu bar,而在excel中叫worksheet menu bar。)你將在excel主菜單中建立菜單項。然后,你增加此菜單項。最后,你增加click事件代碼來執(zhí)行自定義代碼。

提示:office菜單和工具條的對象模塊定義在office.dll中,當你給微軟office system項目建立了一個新的visual studio tools時,微軟visual studio® .net自動包含到此模塊的引用。

先決條件

要完成此演練,下列軟件和組件必須安裝:

• microsoft visual studio .net 2003 or microsoft visual basic® .net standard 2003

• microsoft visual studio tools for the microsoft office system

• microsoft office professional edition 2003

提示:假如你是visual basic .net編程者,你需要設置option strict為on(或者你在每一個模塊中增加option strict聲明)。雖然這不是必須的,但是這可以保證你不會執(zhí)行不安全的類型轉換。在以后的時間里,利用此選項的好處將遠遠大于增加代碼的困難。

開始

你將通過建立一個新的visual studio .net的excel項目來開始。

建立項目

使用微軟office system的visual studio tool建立一個新的excel工作簿項目(在visual basic .net或是c#中)。

建立一個excel工作簿項目

1. 開始visual studio .net,在文件菜單上,指向新建,點擊項目。

2. 在項目類型面板上,擴展微軟office system項目,接著選擇visual basic 項目或visual c#項目。

3. 在模板面板中選擇excel工作簿。

4. 起名為excelcommandbars,接著存儲在當?shù)赜脖P。

5. 在微軟office項目向導中接受缺省值,點擊完成。

visual studio .net為你在代碼編輯器中打開thisworkbook.vb或是thisworkboo.cs文件。

建立菜單欄項目

在excel主菜單條上建立一個菜單欄項目需要你使用add方法增加一個commandbarcontrol。

在excel中建立菜單欄項目

1. 在已存變量thisapplication和thisworkbook下面增加下列變量:

' visual basic

private mainmenubar as office.commandbar

private menubaritem as office.commandbarcontrol

private withevents menuitem as office.commandbarbutton // c#

private office.commandbar mainmenubar = null;

private office.commandbarcontrol menubaritem = null; private office.commandbarbutton menuitem = null;

2. 在officecodebehing類中增加下列程序(通過項目模板建立),這段程序初始化了先前聲明的mainmenubar和menuitembar對象。

' visual basic private

sub initmenubaritems(byval caption as string)

try mainmenubar = thisapplication.commandbars( _ "worksheet menu bar")

menubaritem = mainmenubar.controls.add( _ office.msocontroltype.msocontrolpopup, temporary:=true) menubaritem.caption = caption catch ex as exception messagebox.show(ex.message, _

ex.source, messageboxbuttons.ok, messageboxicon.error)

end try

end sub

// c#

private void initmenubaritems(string caption)

{ try { mainmenubar = thisapplication.commandbars["worksheet menu bar"]; menubaritem = mainmenubar.controls.add( office.msocontroltype.msocontrolpopup, type.missing, type.missing, type.missing, true); menubaritem.caption = caption; }

catch (exception ex) { messagebox.show(ex.message, ex.source, messageboxbuttons.ok, messageboxicon.error); } }

3. 增加下列代碼到已存在的thisworkbook_open程序,這段代碼調用你剛才建立的initmenubaritems程序。

' visual basic

initmenubaritems("&custom code")

// c#

initmenubaritems("&custom code");

4. 選擇文件菜單上的保存所有文件來保存整個方案。

5. 按f5運行項目,裝入excel和你的工作簿。

6. 在excel中,查看菜單欄項目標簽寫著custom code的菜單顯示在幫助菜單右邊。如圖一所示:


圖一:有著自定義菜單欄項目的excel

建立菜單項目

有了合適的自定義菜單欄,你就可以加入新的菜單中了。菜單項目表示為commandbarcontrol對象,你將使用先前建立的菜單欄項目controls集合的add方法來建立一個新的commandbarcontrol實例。

建立菜單項目

1. 增加下列程序到officecodebehind類中,這段程序建立了commandbarcontrol并且設置其標題:

' visual basic

private function createbutton( _

byval parent as office.commandbarpopup, _

byval caption as string) as office.commandbarbutton

try

dim cbc as office.commandbarcontrol

cbc = parent.controls.add( _ office.msocontroltype.msocontrolbutton, temporary:=true)

cbc.caption = caption

cbc.visible = true

return directcast(cbc, office.commandbarbutton)

catch ex as exception

messagebox.show(ex.message, _

ex.source, messageboxbuttons.ok, messageboxicon.error) end try

end function

// c#

private office.commandbarbutton createbutton( office.commandbarpopup parent, string caption)

{ office.commandbarcontrol cbc = null;

try { cbc = parent.controls.add( office.msocontroltype.msocontrolbutton, type.missing, type.missing, type.missing, true); cbc.caption = caption; cbc.visible = true; }

catch (exception ex)

{ messagebox.show(ex.message, ex.source, messageboxbuttons.ok, messageboxicon.error); }

return (office.commandbarbutton) cbc; }

2. 增加下列代碼到thisworkbook_open程序中,下列代碼調用了initmenubaritems程序:

' visual basic

menuitem = createbutton( _

directcast(menubaritem, office.commandbarpopup), _ "run demo code")

// c#

menuitem = createbutton( (office.commandbarpopup)menubaritem, "run demo code");

3. 選擇文件菜單上的保存所有文件來保存整個方案。

4. 按f5運行此項目,裝入excel和你的工作簿。

5. 在excel中點擊自定義的頂級菜單,查看run demo code菜單項。如下圖二所示:


圖二:增加了一個菜單項之后



攔截菜單項的點擊事件

為了完成本次演練,你需要增加一個事件來處理自定義菜單項被點擊之后的響應。

(只用在visual basic)

攔截菜單項點擊事件

在visual basic .net中完成下列步驟增加菜單項被點擊的事件處理程序。

為自定義菜單項增加事件處理(visual basic)

1. 在代碼編輯器的左上角的class name下拉列表中選擇menuitem。

2. 在代碼編輯器的右上角的method name下拉列表中選擇click。

3. 修改menuitem_click程序,增加下列代碼:

' visual basic

messagebox.show(string.format( _

"you just clicked the button labeled '{0}'.{1}" & _

"the name of your workbook is '{2}'.", _

ctrl.caption, environment.newline, thisworkbook.name), _ "menuitem_click", messageboxbuttons.ok, _ messageboxicon.information)

4. 選擇文件菜單中的保存所有文件來保存整個解決方案。

5. 按f5運行這個項目,裝入excel和你的工作簿。

6. 在excel中,點擊custom code菜單,接著選擇run demo code。

一個警告框出現(xiàn),顯示當前工作簿。

(c#)攔截點擊菜單項目事件

在visual c#中完成下列步驟來增加點擊自定義菜單欄項目的事件處理。

為自定義菜單項目增加事件處理(c#)

1. 增加下列程序到officecodebehind類中:

// c# private

void menuitem_click( office.commandbarbutton ctrl, ref boolean canceldefault) { messagebox.show(string.format( "you just clicked the button labeled '{0}'./n" + "the name of your workbook is '{1}'.", ctrl.caption, thisworkbook.name), "menuitem_click", messageboxbuttons.ok, messageboxicon.information); }

2. 修改thisworkbook_open程序,增加下列代碼:

// c#

menuitem.click += new microsoft.office.core. _

commandbarbuttonevents_clickeventhandler(menuitem_click);

提示:如果你輸入完代碼的第一行(直到+=),visual studio .net將提示你按tab鍵。代碼編輯器將為你插入此行的剩余代碼。這個自動完成的新特點使你更容易的完成事件處理程序。

測試本應用

現(xiàn)在你可以測試自己建立的自定義菜單項了。

測試本應用

1. 選擇文件菜單的保存所有文件來保存整個項目。

2. 按f5運行這個項目,裝入excel和你的工作簿。

3. 在警告框中出現(xiàn)對你當前工作簿的描述。

結論

微軟office應用的一個核心特點是建立菜單和工具欄的能力。office commandbar對象提供了一種方法來自定義菜單和工具欄。雖然本次演練示范了你怎樣增加代碼來響應excel菜單的點擊,你將會發(fā)現(xiàn)在word中的行為與此類似。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 黎城县| 梅河口市| 德州市| 贺兰县| 龙游县| 建宁县| 信丰县| 武强县| 正定县| 宜宾市| 万年县| 苗栗市| 永康市| 象州县| 韶山市| 郸城县| 蓬安县| 囊谦县| 溆浦县| 石景山区| 宁河县| 阿巴嘎旗| 峨眉山市| 义乌市| 肇东市| 上犹县| 谷城县| 岳普湖县| 小金县| 即墨市| 临洮县| 天津市| 呼图壁县| 阿克| 桂阳县| 镶黄旗| 庐江县| 瑞丽市| 莱芜市| 磴口县| 盐边县|