라벨 버튼에서 이미지를 얻기의 기본은 간단을 작성하는 데 도움이 필요 :
Capture1.Picture = btn1.picture
진짜 두통이 사실에서 유래 당신이 할 수있는 그 VBA에서 여러 Button.Click 이벤트에 동일한 코드 덩어리를 할당하지 마십시오. VB에서 문법은 다음과 같습니다.
Sub MyRoutine(sender, <args>) Handles Button1.Click, Button2.Click...
VBA에서 기본적으로 36 개의 _Click 루틴, 각 버튼마다 1 개가 필요합니다. 모듈 수준의 카운터를 설정하여 참조 할 레이블을 추적하십시오.
Dim counter As Integer
Private Sub UserForm_Activate()
counter = 1
End Sub
Private Sub btn1_Click()
If counter > 3 Then
counter = 1
End If
Controls("capture" & counter).Picture = btn1.Picture
counter = counter + 1
End Sub
각 루틴의 단추 이름을 제외하면 36 개의 루틴이 필요합니다. 다행히도 대부분 잘라 붙이기로 할 수 있습니다. 당신이 이런 식으로 할 경우
당신은 몇 줄의 코드를 저장할 수 있습니다
Private Sub btn1_Click()
Call CaptureImage(btn1.Name)
End Sub
Private Sub btn2_Click()
Call CaptureImage(btn2.Name)
End Sub
.
.
.
Private Sub CaptureImage(ByVal btnName As String)
If counter > 3 Then
counter = 1
End If
Controls("capture" & counter).Picture = Controls(btnName).Picture
counter = counter + 1
End Sub
을하지만 당신은 여전히 CaptureImage의 서브 루틴을 호출 36 _CLICK 루틴 종료됩니다.