一個一個排列按鈕太累了,透過vba程式八
Sub PositionButtons(left, top) '按鈕位置
Dim ws As Worksheet
Dim oleObj As OLEObject
Dim topPosition As Double
Dim leftPosition As Double
' 設定當前工作表
Set ws = ActiveSheet
' 設定按鈕的起始位置
topPosition = top
leftPosition = left
' 檢查工作表上的所有 OLEObject
For Each oleObj In ws.OLEObjects
' 檢查是否為按鈕控制項
If TypeName(oleObj.Object) = "CommandButton" Then
' 設置按鈕位置
oleObj.top = topPosition
oleObj.left = leftPosition
' 調整下一個按鈕的位置
topPosition = topPosition + oleObj.Height + 5 ' 調整為所需間距
End If
Next oleObj
End Sub
解說:
先定義了一個名為 PositionButtons 的sub程序,接受兩個參數 left 和 top,用來指定按鈕的初始位置。
Sub PositionButtons(left, top) '按鈕位置
這幾行聲明了四個變數:
Dim ws As Worksheet
Dim oleObj As OLEObject
Dim topPosition As Double
Dim leftPosition As Double
ws 代表工作表。
Set ws = ActiveSheet
oleObj 代表工作表上的每一個 OLEObject(嵌入的控制項)。
topPosition 和 leftPosition 分別表示按鈕的上邊距和左邊距。
這兩行將傳入的參數 top 和 left 賦值給 topPosition 和 leftPosition,設置按鈕的初始位置:
topPosition = top
leftPosition = left
這行調整下一個按鈕的位置,將 topPosition 增加當前按鈕的高度和5個單位的間距。
topPosition = topPosition + oleObj.Height + 5 ' 調整為所需間距
這兩行分別結束 If 條件和 For Each 迴圈:
End If
Next oleObj
沒有留言:
張貼留言