Option Explicit
'이 클래스를 사용시
'스핀버튼 하나, 텍스트박스 하나 필요
'스핀 최대 최소값은 "스핀버튼설정" 를 호출해서 설정
Public WithEvents 스핀버튼 As MSForms.SpinButton
Public WithEvents 텍스트박스 As MSForms.TextBox
Public WithEvents 시트이름숫자로버튼 As MSForms.CommandButton
Public WithEvents 시트이름라벨 As MSForms.Label
'최대최소를 바꿔써넣지 않도록 주의
Sub 스핀버튼설정(스핀버튼최대값 As Long, 스핀버튼최소값 As Long, Optional 최대최소값이_바뀌지_않도록_주의 As Byte)
스핀버튼.Max = 스핀버튼최대값
스핀버튼.Min = 스핀버튼최소값
Call 라벨내용변경서브
End Sub
Private Sub 스핀버튼_Change()
텍스트박스.Text = 스핀버튼.Value
Call 라벨내용변경서브
End Sub
Private Sub 시트이름숫자로버튼_Click()
Dim i As Byte
For i = 스핀버튼.Value To Sheets.Count
Sheets(i).Name = i - 스핀버튼.Value + 1
Next
End Sub
Private Sub 텍스트박스_Change()
Dim 숫자값 As Long
숫자값 = Val(텍스트박스.Text)
Select Case 숫자값
Case Is > 스핀버튼.Max
텍스트박스.Text = 스핀버튼.Max
Case Is < 스핀버튼.Min
텍스트박스.Text = 스핀버튼.Min
Case Else
End Select
If 숫자값 >= 스핀버튼.Min And 숫자값 <= 스핀버튼.Max Then
스핀버튼.Value = 숫자값
End If
Call 라벨내용변경서브
End Sub
Private Sub 라벨내용변경서브()
시트이름라벨.Caption = 스핀버튼.Value & "번째 시트부터 번호 부여"
End Sub
Option Explicit
Sub 단추1_Click() '시트에서 버튼 하나 생성, 그버튼..
사무폼.Show 0
End Sub
Option Explicit
Dim 사무 As New 사무클래스
Private Sub UserForm_Initialize()
Set 사무.스핀버튼 = 스핀버튼 '"스핀버튼" 이란 이름의 스핀버튼
Set 사무.텍스트박스 = 텍스트박스 '"텍스트박스"란 이름의 텍스트 박스
Set 사무.시트이름숫자로버튼 = 시트이름숫자로버튼 '"시트이름숫자로버튼"란 이름의 커맨드 버튼
Set 사무.시트이름라벨 = 시트이름라벨 '"시트이름라벨"이란 이름의 라벨
Call 사무.스핀버튼설정(12, 1) '스핀 최대 최소값 설정,최대최소를 반대로 적지 않도록 주의
End Sub