精選
[Excel VBA] 用程式新增按鈕
2009/03/24 10:35
瀏覽17,698
迴響1
推薦2
引用0
曾有位朋友問到,如果要用 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 專案] 方塊。
"對於 Visual Basic專案的程式化存取未信任"的錯誤訊息,這是Excel為了防範巨集
病毒或惡意巨集而設的控管機制。所以,請選 [工具] 功能表-->[巨集]--> [安全性]
,在 [信任的來源] 索引標籤上勾選 [信任存取 Visual Basic 專案] 方塊。在巨集執行
完畢之後,應該取消勾選 [信任存取 Visual Basic 專案] 方塊。
你可能會有興趣的文章:
迴響(1) :
1樓. Excel新生2009/11/10 09:28請教一下
請問一下我要在VBA 表單內新增一個TextBox應該要怎樣新增~?可以教我嗎滑鼠在控制工具箱裡點一下 "Textbox" 工具,然後在表單裡拖曳,就可以拉出一個矩形的 Textbox。 ThisIsTheWay 於 2009/11/11 06:27回覆




