網路城邦
上一篇 回創作列表 下一篇   字體:
[Excel VBA] 用程式新增按鈕
2009/03/24 10:35:06瀏覽16806|回應1|推薦2

曾有位朋友問到,如果要用 VBA 程式去執行 "在工作表上增加一個按鈕",該怎麼寫
呢?


其實,新增一個按鈕之後,還需編寫這個按鈕的 _Click() 程式碼,它才會是按了有作用
的鈕。底下的程式就是在示範這個手續:

 Sub NewSheetButton()
Dim NewSheet As Worksheet
Dim NewBtn As CommandButton


'先在活頁簿裡插入一張新工作表,

Set NewSheet = ActiveWorkbook.Worksheets.Add(After:=Worksheets(Worksheets.Count))

'Worksheets.Count 就是現在總共有幾張工作表, 所以上面這一行就是

'在編號最大的一張工作表後面插入一個新工作表



NewSheet.Activate
'現在要把新工作表 "活化"



Set NewBtn = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", link:=False _

, DisplayAsIcon:=False, Left:=140, Top:=60, Width:=80, Height:=30)

'在active的工作表上新增一個按鈕, Left:=140, Top:=60 是左上角的座標,
'Width:=80, Height:= 30 是寬和高

 

NewBtn.Name = "訊息鈕" '把按鈕改成我要的名字。若不改NewBtn的Name,它的名字

    '會是 "CommandButton1",底下的副程式就要叫做 "CommandButton1_Click" 



'底下三行是在code字串裡組成按鈕的程式碼

Code = "Sub 問候鈕_Click()" & vbCrLf

Code = Code & "MsgBox ""嗨! 這是你要的訊息!""" & vbCrLf

Code = Code & "End Sub"


'把 "Code" 字串寫入這張工作表的程式碼模組

ThisWorkbook.VBProject.VBComponents(NewSheet.CodeName).CodeModule. _
    AddFromString (Code)



End Sub




因為我們的程式要寫入 _click() 的碼, 這個程式在 Excel 中執行時,可能會出現
 "對於 Visual Basic專案的程式化存取未信任"的錯誤訊息,這是Excel為了防範巨集
病毒或惡意巨集而設的控管機制。所以,請選 [工具] 功能表-->[巨集]--> [安全性]
,在 [信任的來源] 索引標籤上勾選 [信任存取 Visual Basic 專案] 方塊。在巨集執行
完畢之後,應該取消勾選 [信任存取 Visual Basic 專案] 方塊。

( 興趣嗜好電腦3C )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=WayCheng&aid=2776678

 回應文章

Excel新生
請教一下
2009/11/10 09:28
請問一下我要在VBA 表單內新增一個TextBox應該要怎樣新增~?可以教我嗎
ThisIsTheWay(WayCheng) 於 2009-11-11 06:27 回覆:
滑鼠在控制工具箱裡點一下 "Textbox" 工具,然後在表單裡拖曳,就可以拉出一個矩形的 Textbox。