반응형
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
반응형
'programing' 카테고리의 다른 글
키보드가 입력 필드를 덮는 경우에만 보기 위로 이동 (0) | 2023.04.23 |
---|---|
SQL에서 행을 무작위로 선택하는 방법 (0) | 2023.04.18 |
ItemsControl DataTemplate에서 캔버스 속성 설정 (0) | 2023.04.18 |
Git에서 처음 두 개의 커밋을 뭉개시겠습니까? (0) | 2023.04.18 |
Linux 및 OS X에서 로컬 머신의 프라이머리 IP 주소를 취득하는 방법 (0) | 2023.04.18 |