2016-12-21 6 views
0

이 작업은 분명한 작업입니다. 매크로에서 Excel로 누른 명령 단추의 이름을 변수로 사용하고 싶습니다. 매크로는 버튼의 이름으로 셀의 값을 설정하는 것만 큼 간단합니다. 따라서 버튼 캡션 "10"을 누르면 셀 값은 "10"이됩니다. 동일한 매크로가 모든 숫자 버튼 캡션/이름에 대해 작동해야합니다. 죄송합니다. 이것이 분명하다면!변수로 버튼 캡션 사용

+0

Application.Caller는 여기에서 도움이되지만 양식 버튼이어야합니다. –

+0

@EEM 아무도, 웹 검색을 시도했지만 아무데도 이걸로 얻을 수 없었습니다 – Jokru

답변

1

이 기능은 양식 버튼으로 작동하지만 ActiveX 버튼에는 사용할 수 없습니다.

Sub Button1_Click() 

    If Not IsError(Application.Caller) Then 

     Dim obj2 As Object 
     Set obj2 = ActiveSheet.Shapes.Item(Application.Caller) 
     Debug.Print obj2.AlternativeText 
    End If 
End Sub 

하지만 귀하의 질문에 명령 단추 (액티브 X의 다양한)이 더 관여에 대해 질문, 우리는 명령 단추에 대한 참조를 얻을 수있는 모양을 찾은 다음 OLEFormat를 통해에서 드릴의 IDispatch 2 층 필요 , 우리는 WithEvents를 사용하여 이벤트 핸들러를 시작합니다.

Option Explicit 

'* Inside Sheet module 

Private WithEvents mcmd As MSForms.CommandButton 

Private Sub Initialise() 
    Dim obj As Object 
    Set obj = Me.Shapes.Item("CommandButton1") 
    Set mcmd = obj.OLEFormat.Object.Object 

End Sub 

Private Sub mcmd_Click() 

    Debug.Print mcmd.Caption 

End Sub 

슬프게도 내가 생각하는 모든 명령 단추에 대해 이와 같이 코드를 초기화해야합니다.

+0

내 사과, 핀란드어이며, 차이가 무엇인지 확신 할 수 없었지만 비 ActiveX 버튼에 대해 묻습니다. 그래서 그것은 완벽하게 작동합니다. – Jokru

+0

그리고 내 의견을 분명히 편집 할 수 없기 때문에 고마워! – Jokru

+0

평판이 높아지면 댓글을 수정할 수 있습니다. 따라서 StackOverflow로 돌아가시기 바랍니다. –