<프로시저_VBA>

(1) [개발도구]-[컨트롤]-[디자인모드] 에서 컨트롤을 더블클릭하면 VBA 편집모드가 나타난다.


(2) 폼 나타나게 하기 : 폼이름.show


(3) 폼이 초기화되면 지출내역(cmb지출내역) 목록에 ‘i2:i8’ 영역의 값이 표시되도록 프로시저 작성


VBA 편집모드의 프로젝트 브라우저에서 폼을 더블클릭 후


폼의 위에서 더블클릭하면


VBA 편집할 수 있는 창이 나타난다. 여기서 초기화했을 때의 이벤트를 만들 것이므로 오른쪽 위의 목록 중 Initialize를 고른다. 그러면 위와 같은 함수가 하마 생기고, 이 안에서 작업한 코드는 폼이 초기화(initialize) 되었을 때 발생한다.

Private Sub UserForm_Initialize()

    cmb지출내역.RowSource = "i2:i8"

End Sub

콤보상자명.rowsource=”범위” : rowsource는 콤보상자 목록을 나타내는 속성이다.


 

(4) 또는, 폼이 초기화되면 지출내역 목록에 개발자가 지정한 목록이 입력되는 프로지서 작성

*콤보박스에서의 엑셀->컨트롤

Private Sub UserForm_Initialize()

    cmb지출내역.AddItem "관리비"

    cmb지출내역.AddItem "보험료"

    cmb지출내역.AddItem "적금"

    cmb지출내역.AddItem "교통비"

    cmb지출내역.AddItem "식대"

    cmb지출내역.AddItem "기타"

End Sub

콤보상자명.additem “” : 콤보상자에 들어갈 목록을 직접 작성할 때 사용한다.


(5) frm지출내역 폼의 입력(cmd입력) 단추를 클릭하면 폼에 입력된 지출일자(txt일자), 지출내역(cmb지출내역), 상세내역(txt상세내역), 지출금액(txt금액)을 표시하도록 프로시저 작성.

*컨트롤->엑셀 데이터

Private Sub cmd입력_Click()

    r = [a3].Row + [a3].currentRegion.Rows.Count

    Cells(r, 1) = txt일자

    Cells(r, 2) = cmb지출내역

    Cells(r, 3) = TXT상세내역

    Cells(r, 4) = txt금액

    txt일자 = ""

    cmb지출내역 = ""

    TXT상세내역 = ""

    txt금액 = ""

End Sub

*[a3].row : A3의 행번호를 받고, 반환되는 값은 3이다.

*[a3].currentregion : a3에 연결된 () 영역을 지정. A3:c9까지라면 [a4].currentregion[c7].currentregion도 같은 영역을 나타낸다.

*[a3].currentregion.rows.count : a3과 연결된 영역의 행 수를 반환한다. A3:c9라면 9-3+1=7을 반환할 것이다. 따라서 폼에서 입력한 데이터는 a10:c10에 입력된다.

*[a3].CurrentRegion.Rows만 쓸 것우 컴파일 오류.

*Cells(r,1)r1열의 셀을 가리킨다.


(6) 폼 닫기

Private Sub cmd종료_Click()

    Unload Me

End Sub


(7) 메시지박스(msgbox) 보이기

Private Sub UserForm_Click()

    If cmb종류 = "BC카드" Or cmb종류 = "삼성카드" Then

        MsgBox "3개월 무이자 할부 행사 기간입니다." & Time

    End If

End Sub


*Time은 현재 시간을 보여준다.

*MsgBox cmb종류&"3개월 무이자 할부 행사 기간입니다." & Time

만약 메시지박스에 변수를 넣으려면 큰 따옴표 밖에 &연산자와 함께 넣는다.


(8) 지출일자가 변경되면 위크시트의 지출내역과 지출액이 폼에 표시되도록 프로시저 작성

*엑셀데이터->컨트롤

Private Sub Cmb지출일자_Change()

    r = [a3].Row + Cmb지출일자.ListIndex + 1

    txt지출내역 = Cells(r, 2)

    txt지출액 = Cells(r, 3)

End Sub

Listindex : 목록에서 선택한 값의 행 번호로 0부터 시작한다. (그래서 +1해줌.)


(9) 체크박스 핸들링


If chk인증 = True Then

        Cells(r, 6) = "친환경인증"

    Else

        Cells(r, 6) = ""

    End If

초기화는 아래와 같다.

    chk인증 = False

 

(10) 콤보박스 인덱스를 사용한 초기화

cmb제조방법.ListIndex = 0




20. 목표값찾기

(1) 이걸 지정하려면 수식같은걸로 연결되어있어야 한다.

(2)


확인누르면 데이터가 바뀌고, 취소누르면 목표값을 확인만 하고 데이터는 바뀌지 않는다.


 

21. 시나리오 관리자

(1)


[추가]하면 바로 시나리오를 추가할 수 있다.


시나리오의 셀이름 바꾸기


왼쪽위의 해당 셀이름이 나타나는 칸에 바꾸고자하는 이름을 넣고 엔터.


 

22. 차트

(1) 보조 세로축 : 해당 그래프를 선택하여 [데이터 게열 지정]-[보조축] 선택

(2) 레이블 : 선택하여 하나만 레이블 나오게 하기 / 레이블 위치

(3) 축 제목

(4) 범례

(5) 차트 영역 서식

(6) 그림 영역 서식

(7) 축 옵션 : 주 단위_고정 / 최소 최대값

(8) 차트제목을 셀에 연결하려면 텍스트 편집이 아닌 위치를 변경할 수 있도록 차트제목을 클릭하여 수식입력줄에 이퀄과 함께 연결할 셀을 넣는다.




1. 데이터 표 : 전체 데이터 중 일부분의 데이터를 변화시켜 수식의 결과가 어떻게 변하는지 보여줌.

(1) 연결시켜야 함 : =을 이용

(2) [가상분석] > [데이터표]



 

2. 데이터 통합 : 하나 이상의 작업 영역의 데이터를 저장해서 하나로 통합하여 요약한다.

(1) “통합기능을 이용하여라고 문제에 나옴.

(2)

* 범위주의 : 고객번호는 지정하지 않고, 첫행, 왼쪽열은 계산이 아닌 기준으로 사용하도록 하기위해 체크한다.





+ Recent posts