2020年10月24日 星期六

Excel VBA 如何固定ActiveX 按鈕位置

 上周一個被問到的一個可愛的問題,整理一下做分享。

筆者建議可以透過控制.left、.top來控制ActiveX 按鈕位置。但要如何使每一頁工作頁的按鈕位置都固定呢!!!要在"ThisWorkbook"裡做觸發設定。

在VBA編輯視窗下,透過專案管理員,可以找到"ThisWorkbook",點開後程式碼編輯區,點選工作簿(WORKBOOK),在點選SheetChange作為觸發,如圖2所示。

image

圖1.專案管理員裏頭的ThisWorkbook

image

圖2.觸發設定

位置屬性基本概念:

ActiveX 按鈕 .left:按鈕左邊離工作簿左邊的相對距離

ActiveX 按鈕 .top:按鈕上邊離工作簿左上角的相對距離

image

圖3.left、top 位置控制示意

大概了解位置屬性後,可參考如下內容的編輯,即可固定ActiveX 按鈕。

程式碼編輯參考:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    ActiveSheet.CommandButton1.Left = 62
    ActiveSheet.CommandButton1.Top = 415
End Sub

沒有留言:

張貼留言

程式:最近的物件陣列混用的想法,提高效率。

 最近有一個整理資料的需求。 但又不想做SQL, 所有我就做了一個資料包方式做處理 但每次有78萬筆資料要執行2次篩選 剩下約400筆資料才是本次需求的資料。 然後這400筆資料還要按照年度與科目都到表單上, 要一直不斷重複操作物件,效率大大下降。 所以我想了一個類似一半物件一半...