این کد رو ببینید.
از یک سایت پیداش کردم: (خودم ننوشتم اما امتحان کردم خیلی خوب جواب میداد. تست شده است).
برای ایجاد داینامیک یک باتن در یک شیت هستش.
با کمی تغییر میتونید چند پارامتر بهش اضافه کنید و تعداد نا محدودی باتن رو از این طریق تولید کنید. مخصوصا که فرامینشون یکی است.
کد:
Sub CreateControlButton()
'-----------------------------------------------------------------
Dim oWs As Worksheet
Dim oOLE As OLEObject
Set oWs = ActiveSheet
Set oOLE = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CommandButton.1", _
Left:=200, Top:=100, Width:=80, Height:=32)
With oOLE
.Object.Caption = "Run myMacro"
.Name = "myMacro"
End With
With ThisWorkbook.VBProject.VBComponents(oWs.CodeName).CodeModule
.InsertLines .CreateEventProc("Click", oOLE.Name) + 1, _
vbTab & "If Range(""A1"").Value > 0 Then " & vbCrLf & _
vbTab & vbTab & "Msgbox ""Hi""" & vbCrLf & _
vbTab & "End If"
End With
End Sub
'-----------------------------------------------------------------
Sub CreateCombobox()
'-----------------------------------------------------------------
Dim oWs As Worksheet
Dim oOLE As OLEObject
Set oWs = ActiveSheet
Set oOLE = ActiveSheet.OLEObjects.Add(ClassType:="Forms.Combobox.1", _
Left:=200, Top:=100, Width:=80, Height:=32)
oOLE.ListFillRange = "A1:A10"
End Sub
[size=large]البته نکته ای که باید توجه کنیدو حتما
OPTION-> TRUST CENTER ->tRUST CENTER SETTING-> TRUST ACCESS TO THE VBA PROJECT OBJECT MODEL رو فعال کنید.
[/size]
امید وارم درست متوجه شده باشم منظور شمارو.
موفق و پیروز باشید.
علاقه مندی ها (Bookmarks)