Excel에서 VBA를 사용하여 단추 및 메뉴에서 매크로에 인수를 전달하는 방법은 무엇입니까?
6237 단어 vbamacrostopassargumentstomac
예시
Visual Basic 선택
Sub AddCommandToCellShortcutMenu()
Dim i As Integer, ctrl As CommandBarButton
DeleteAllCustomControls ' delete the controls if they already exists
' create the new controls
With Application.CommandBars(25) ' the cell shortcut menu
' add an ordinary commandbarbutton
Set ctrl = .Controls.Add(msoControlButton, , , , True)
With ctrl
.BeginGroup = True
.Caption = "New Menu1"
.FaceId = 71
.State = msoButtonUp
.Style = msoButtonIconAndCaption
.Tag = "TESTTAG1"
.OnAction = "MyMacroName2"
End With
' add a button that passes one string argument
Set ctrl = .Controls.Add(msoControlButton, , , , True)
With ctrl
.BeginGroup = False
.Caption = "New Menu2"
.FaceId = 72
.Style = msoButtonIconAndCaption
.Tag = "TESTTAG2"
.OnAction = "'MyMacroName2 ""New Menu2""'"
End With
' add a button that passes passes one string argument
Set ctrl = .Controls.Add(msoControlButton, , , , True)
With ctrl
.BeginGroup = False
.Caption = "New Menu3"
.FaceId = 73
.Style = msoButtonIconAndCaption
.Tag = "TESTTAG3"
.OnAction = "'MyMacroName2 """ & .Caption & """'"
End With
' add a button that passes two arguments, a string and an integer
Set ctrl = .Controls.Add(msoControlButton, , , , True)
With ctrl
.BeginGroup = False
.Caption = "New Menu4"
.FaceId = 74
.Style = msoButtonIconAndCaption
.Tag = "TESTTAG4"
.OnAction = "'MyMacroName3 """ & .Caption & """, 10'"
End With
End With
Set ctrl = Nothing
End Sub
Sub DeleteAllCustomControls()
' delete the controls if they already exists
Dim i As Integer
For i = 1 To 4
DeleteCustomCommandBarControl "TESTTAG" & i
Next i
End Sub
Private Sub DeleteCustomCommandBarControl(CustomControlTag As String)
' deletes ALL CommandBar controls with Tag = CustomControlTag
On Error Resume Next
Do
Application.CommandBars.FindControl(, , CustomControlTag, False).Delete
Loop Until Application.CommandBars.FindControl(, , _
CustomControlTag, False) Is Nothing
On Error GoTo 0
End Sub
' example macros used by the commandbar buttons
Sub MyMacroName1()
MsgBox "The time is " & Format(Time, "hh:mm:ss")
End Sub
Sub MyMacroName2(Optional MsgBoxCaption As String = "UNKNOWN")
MsgBox "The time is " & Format(Time, "hh:mm:ss"), , _
"This macro was started from " & MsgBoxCaption
End Sub
Sub MyMacroName3(MsgBoxCaption As String, DisplayValue As Integer)
MsgBox "The time is " & Format(Time, "hh:mm:ss"), , _
MsgBoxCaption & " " & DisplayValue
End Sub
코드 저장
매크로 옵션 선택
코드 실행
출력
마무리
이 문서에서 Microsoft Excel의 VBA를 사용하여 단추 및 메뉴에서 매크로에 인수를 전달하는 방법에 대한 설명을 얻을 수 있습니다. 이 문서 또는 다른 Excel/VBA 주제와 관련하여 의문 사항이 있으면 알려주십시오.
Geek Excel 찾아주셔서 정말 감사합니다!! *더 도움이 되는 공식을 알고 싶다면 Excel Formulas을 확인하세요 *!!
계속 읽으세요:
Reference
이 문제에 관하여(Excel에서 VBA를 사용하여 단추 및 메뉴에서 매크로에 인수를 전달하는 방법은 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/excelgeek/how-to-pass-arguments-to-macros-from-buttons-and-menus-using-vba-in-excel-3foj텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)