엑셀(Excel) VBA - 스크롤 막대 컨트롤 이용해서 대출상환금 구하기 |
환경 : Microsoft Excel 2010 |
스크롤 막대를 이용해서 대출상환금을 계산하는 폼을 만들어 보았습니다. 대출상환금을 구하는 함수는 PMT 이며 이전 아티클을 참고 하시기 바랍니다.
▼ PMT 함수에 들어가는 값들을 스크롤 막대로 선택해 넣을수 있도록 3개의 텍스트 박스와 3개의 스크롤 막대를 만듭니다. 그리고 확인을 누르게 되면 월단위로 대출상관금을 계산해서 레이블에 뿌려 주게 됩니다.
▼ 폼을 초기화 할 때 스크롤바에 대한 옵션을 셋팅하게 되는데 셋팅해야할 속성은 Min, Max, SamllChange, LargeChange Value 가 있습니다. Min, Max 는 스크롤 바로 표현할수 있는 값의 최대값 최소값이고 SamllChange, LargeChange 는 오래 눌렀을때와 짧은 간격으로 눌렀을때의 값이 변화하는 크기를 말합니다. 그렇게 해서 3개의 텍스트 박스와 스크롤 막대를 아래와 같이 셋팅합니다.
Private Sub UserForm_Initialize()
TextBox1.BackColor = RGB(255, 255, 0) TextBox1.TextAlign = fmTextAlignCenter TextBox1.Font.Bold = True TextBox1.Enabled = False
Label1.TextAlign = fmTextAlignLeft
ScrollBar1.Min = 0 ScrollBar1.Max = 10000 ScrollBar1.Orientation = fmOrientationHorizontal ScrollBar1.SmallChange = 5 ScrollBar1.LargeChange = 100 ScrollBar1.Value = 0
TextBox2.BackColor = RGB(255, 255, 0) TextBox2.TextAlign = fmTextAlignCenter TextBox2.Font.Bold = True TextBox2.Enabled = False
Label2.TextAlign = fmTextAlignLeft
ScrollBar2.Min = 0 ScrollBar2.Max = 1000 ScrollBar2.Orientation = fmOrientationHorizontal ScrollBar2.SmallChange = 1 ScrollBar2.LargeChange = 10 ScrollBar2.Value = 0
TextBox3.BackColor = RGB(255, 255, 0) TextBox3.TextAlign = fmTextAlignCenter TextBox3.Font.Bold = True TextBox3.Enabled = False
Label3.TextAlign = fmTextAlignLeft
ScrollBar3.Min = 0 ScrollBar3.Max = 50 ScrollBar3.Orientation = fmOrientationHorizontal ScrollBar3.SmallChange = 1 ScrollBar3.LargeChange = 4 ScrollBar3.Value = 0
Label4.Caption = "월지출비용 : \" Label4.TextAlign = fmTextAlignCenter Label4.BackColor = RGB(0, 255, 0) Label4.Font.Bold = True
End Sub |
▼ 이제 스크롤이 클릭 되었을 때 텍스트 박스에 값을 표현해야 합니다. 스크롤이 클릭되었을 때 발생하는 이벤트는 Change 입니다. 각각 Change 함수를 등록합니다.
Private Sub ScrollBar1_Change() TextBox1.Value = ScrollBar1.Value * 1000 TextBox1.Value = Format(TextBox1.Value, "#,##0") End Sub
Private Sub ScrollBar2_Change() TextBox2.Value = ScrollBar2.Value / 10 End Sub
Private Sub ScrollBar3_Change() TextBox3.Value = ScrollBar3.Value / 2 End Sub |
▼ 마지막으로 확인 버튼을 클릭했을 때 대출상환금을 계산하는 소스입니다. PMT 함수를 사용하여 값을 구하였습니다. 마지막에 그 결과값을 레이블에 뿌려 주게 됩니다.
Private Sub CommandButton1_Click()
Dim mi As Currency If Not TextBox1.Value > 0 Then MsgBox "Please Enter Loan Amount!" Exit Sub ElseIf Not TextBox2.Value > 0 Then MsgBox "Please Enter Annual Interest Rate!" Exit Sub ElseIf Not TextBox3.Value > 0 Then MsgBox "Please Enter Loan Tenure!" Exit Sub Else mi = Pmt((TextBox2.Value / 100) / 12, TextBox3.Value * 12, TextBox1.Value) Label4.Caption = "월지출비용 : \" & Round(mi, 2) * -1 End If
End Sub |
▼ 모든 소스를 완성하고 실행시키면 아래와 같은 화면이 나올겁니다. 값을 적당히 집어넣고 확인을 눌러 봅니다. 그럼 계산한 결과를 레이블에서 볼 수 있습니다.
'엑셀(Excel) > VBA' 카테고리의 다른 글
엑셀(Excel) VBA – Application.Volatile 함수로 사용자정의함수 재구동 (2) | 2014.12.21 |
---|---|
엑셀(Excel) VBA – 선택한 셀시트명, 파일명, 위치를 알아오는 사용자정의함수 (0) | 2014.12.20 |
엑셀(Excel) VBA – 사용자정의 함수 세부내용 VB 코드로 등록하기 (1) | 2014.12.19 |
엑셀(Excel) VBA - 셀영역의 값을 복사하기 (1) | 2014.12.18 |
엑셀(Excel) VBA - 목록상자에서 다중선택하여 엑셀에 값 추가하기 (7) | 2014.12.15 |
엑셀(Excel) VBA - 폼에 배치한 컨트롤 정렬하기 (0) | 2014.12.12 |
엑셀(Excel) VBA - 목록상자 컨트롤 이용하여 목록 조회, 선택하기 (1) | 2014.12.12 |
엑셀(Excel) VBA - 콤보상자에 ID 를 추가하여 선택할수 있도록 하기 (0) | 2014.12.08 |