標題:
如何得知按鈕(表單控制項)的Object Name及控制
[打印本頁]
作者:
c_c_lai
時間:
2012-3-22 12:12
標題:
如何得知按鈕(表單控制項)的Object Name及控制
請教您:
我使用了 開發人員->插入->按鈕(表單控制項) , 一個名為開啟鈕,另一個為關閉鈕。
請教您,當我想要在 EXCEL 開啟時,開啟鈕為隱藏(Hide)模式,當我選按關閉鈕時,
開啟鈕就顯示出來(Enable),關閉鈕就同時變更為隱藏(Hide)模式,反之亦然。
因為我在VBA編輯器內,不知要如何得知這些按鈕的Object Name,以及能否使用
Enable或Disable語法,勝至還想將'開啟'字句改為其他字語或變更顏色等等,
在此謝謝您了!
作者:
hugh0620
時間:
2012-3-22 13:29
本帖最後由 hugh0620 於 2012-3-22 13:34 編輯
回復
1#
c_c_lai
下圖是你想要的結果~
設兩個表單按鈕
[按鈕 1]=>open
[按鈕 2]=>close
設兩個程式碼在sheet1中
Sub ex1() 'Close=false Open=True
[按鈕 1].Visible = True
[按鈕 2].Visible = False
End Sub
Sub ex2() 'Open=false Close=True
[按鈕 2].Visible = True
[按鈕 1].Visible = False
End Sub
複製代碼
設一個程式碼在thisworkbook中
Private Sub Workbook_Open()
[按鈕 1].Visible = False
End Sub
複製代碼
[按鈕 2]指定巨集Sheet1.ex1
[按鈕 1]指定巨集Sheet1.ex2
[attach]10096[/attach]
[attach]10095[/attach]
作者:
Hsieh
時間:
2012-3-22 14:05
回復
1#
c_c_lai
[attach]10097[/attach]
一般模組
Sub auto_open()
Dim Sp As Shape
For Each Sp In 工作表2.Shapes
Sp.OnAction = "OC"
If Sp.TextFrame.Characters.Text = "開啟" Then
Sp.Visible = msoFalse
Else
Sp.Visible = msoTrue
End If
Next
End Sub
Sub OC()
For Each Sp In 工作表2.Shapes
Sp.Visible = msoTrue
Next
工作表2.Shapes(Application.Caller).Visible = False
End Sub
複製代碼
作者:
c_c_lai
時間:
2012-3-22 21:11
謝謝版主指導,不過在存檔時,卻出現了以下之訊息:
若要儲存具有這些功能的檔案,請按一下否,在於檔案類型清單選擇啟用聚集的檔案類型。
若要繼續儲存為無巨集活頁簿,請按一下是。
如果選是,存檔後再次開啟,VBA都不見了,選否亦不是,請教應如何正確建置?
作者:
Hsieh
時間:
2012-3-22 22:25
回復
4#
c_c_lai
[attach]10106[/attach]
作者:
c_c_lai
時間:
2012-3-23 06:59
非常感謝版主的指正,以往習慣存成.xls的檔案型態所以沒有留意到2010版的.xlsx和.xlsm型態應用的差異性,確實受教了,多謝您!
今假設如果不是使用
工作表1.Shapes(Application.Caller).Visible = False 或者是 [按鈕 1].Visible = False 方式來處理,而是應用 按鈕的字型改變顏色 或 按鈕的外觀的形狀之凹凸來表示的話,那不知該如何撰寫?
多次打擾您真不好意思! 再次說聲感謝您!
作者:
Hsieh
時間:
2012-3-23 08:47
回復
6#
c_c_lai
請參考VBA的Shape物件的屬性說明
[attach]10107[/attach]
作者:
c_c_lai
時間:
2012-3-23 10:56
目前我的表單是用[按鈕 1].Visible = False 方式來處理,因為用 工作表1.Shapes(Application.Caller ) .Visible = False 的方式帶入程式裡出現找不到 OC 的巨集的訊息,多次打擾再次說聲感謝您!
歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)