programing

VBA에서 일부 시트 셀 데이터 옆에 프로그래밍 방식으로 버튼을 추가하는 방법은 무엇입니까?

padding 2023. 4. 18. 21:50
반응형

VBA에서 일부 시트 셀 데이터 옆에 프로그래밍 방식으로 버튼을 추가하는 방법은 무엇입니까?

예를 들어 100행(및 2열)에 대한 데이터를 생성하는 기능이 있습니다.각 행(세 번째 열)에 버튼을 추가해야 합니다.버튼을 클릭하면 커스텀모달 대화상자가 표시되며 사용자가 선택할 수 있는 옵션/버튼이 4개 표시됩니다.

어떻게 하는지 아세요?

이 정도면 좋은 길을 걸을 수 있을 것 같아요.

Sub a()
  Dim btn As Button
  Application.ScreenUpdating = False
  ActiveSheet.Buttons.Delete
  Dim t As Range
  For i = 2 To 6 Step 2
    Set t = ActiveSheet.Range(Cells(i, 3), Cells(i, 3))
    Set btn = ActiveSheet.Buttons.Add(t.Left, t.Top, t.Width, t.Height)
    With btn
      .OnAction = "btnS"
      .Caption = "Btn " & i
      .Name = "Btn" & i
    End With
  Next i
  Application.ScreenUpdating = True
End Sub

Sub btnS()
 MsgBox Application.Caller
End Sub

버튼을 생성하여 butnS()에 바인드합니다.btnS() 서브에는 대화상자 등을 표시해야 합니다.

매스매티카 그래픽스

함수에서 A열과 B열에 데이터를 입력하고 사용자가 C열의 셀을 선택한 경우 사용자 정의 사용자 양식이 표시되도록 한다고 가정합니다.이를 위한 한 가지 방법은SelectionChange이벤트:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim clickRng As Range
    Dim lastRow As Long

    lastRow = Range("A1").End(xlDown).Row
    Set clickRng = Range("C1:C" & lastRow) 'Dynamically set cells that can be clicked based on data in column A

    If Not Intersect(Target, clickRng) Is Nothing Then
        MyUserForm.Show 'Launch custom userform
    End If

End Sub

사용자가 열 C의 셀을 선택하고 열 C의 각 셀에 "select cell to launch form"과 같은 것을 입력하여 사용자가 액션을 수행할 필요가 있음을 확인할 때 사용자 양식이 나타납니다(버튼을 사용하면 당연히 클릭해야 합니다).

언급URL : https://stackoverflow.com/questions/4559094/how-to-add-a-button-programmatically-in-vba-next-to-some-sheet-cell-data

반응형