本文以按钮控件为例,分享如何利用VBA操作表单控件的移动,主要使用到Shape.IncrementLeft 以及IncrementTop 方法。
1.将多个单元格转为按钮控件
作为演示案例,我们先制作两个按钮控件。
首先,在A1单元格输入内容---“下移”,B1单元格输入内容---“右移”。然后,我们选中A1和B1单元格,执行以下代码,就将A1和B1单元格转为按钮控件,并完全填充单元格,同时设置按钮名称为其所在的单元格地址。
Sub 将多个单元格转为按钮()
Dim rng As Range
For Each rng In Application.Selection
Dim btn As Button
Set btn = ActiveSheet.Buttons.Add(rng.Left, rng.Top, rng.Width, rng.Height)
With btn
.Caption = rng.Value
.Font.Size = 16
.Font.Bold = True
.Name = rng.Address
End With
rng.ClearContents
Next
End Sub
2.右移按钮,指定宏---“右移”
Sub 右移()
Dim btn As Shape
Set btn = ActiveSheet.Shapes(Application.Caller)
btn.IncrementLeft Range(Application.Caller).Width
btn.Name = btn.TopLeftCell.Address
End Sub
3.下移按钮,指定宏---“下移”
Sub 下移()
Dim btn As Shape
Set btn = ActiveSheet.Shapes(Application.Caller)
btn.IncrementTop Range(Application.Caller).Height
btn.Name = btn.TopLeftCell.Address
End Sub