2024年11月8日 星期五

vba:自動調整按鈕位置跟大小 靠,物件迴圈

一個一個排列按鈕太累了,透過vba程式八


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
view raw gistfile1.txt hosted with ❤ by GitHub



解說:

先定義了一個名為 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





沒有留言:

張貼留言

指數變化(2025.03.28)

 指數變化(2025.03.28) 上周焦點: 美國消費者信心指數 3/25 92.9 美國耐久財訂單月增率 3/26 1.4 PCE 月增 0.4 年增 2.8 (不多阿,最高還有5.5ㄝ)   本周愛看: 美國非農業就業人數變化 美國ISM製造業採購經理人指數 美國芝加哥FE...