PROGRAMMING WORKSHOP

프로젝트기성관리 |

기성작성도구

편집이나 입력을 편리하게 하는 도구가 필요할 것이다
불편하면 시트에 직접입력해도 좋은 것이나, 하나 만들어 보면서
각자의 현장에 맞추어서 기능을 추가하거나, 추가 하고 싶은데
코딩실력이 아직 안된다면 , 프로그래밍워크샵을 활용하면 된다



UserForm의 콘트롤을 손으로 그려가면서 하지 않고
프로그래밍적으로 하는 것이 어렵다고 생각하면 여러분은
손으로 그리고 각각의 콘트롤의 이벤트의 내용을 여기에서 작성한
크래스모듈의 이벤트를 옮기면 된다
가장 어려워보이는 것으로 하는 이유는 워크샵의 수준이 있지,
아무나 하는 것을 하면 좀 수준빠지니까..열심히 하여 프로그래밍의
흥미에 심취하시면 좋을 것 같다
무언가에 심취하면서 산다는 것은 정말 건강하게 살아가는 방법중의 하나다
위의 UserForm을 위하여 크래스모듈을 3개를 삽입했다
진행하면서 더 추가 될수도 있을 것이다



[기성물량편집]이라는 탭을 추가했다
프로그래밍적으로는 아래와 같이

Private Function createTabPage()

'MultiPage는 기본적으로 만들면 두개의 탭이 만들어진다
Dim oTabPages As MSForms.MultiPage
Dim oTab As MSForms.Tab, oTab1 As MSForms.Tab

'MultiPage의 크래스명은 Forms.MultiPage.1 이다
Set oTabPages = Me.Controls.Add("Forms.MultiPage.1")

'탭페이지도 페이지가 바뀔때 마다 어떤 작업을 하여야 하니까
'이 탭페이지만의 이벤트활용을 위한 크래스를 하나 만들고 
'외부변수로 이 크래스에서 생성된 개체를 담는다
Set oMultiPage = New clsMultiPage
Set oMultiPage.oMultiPage = oTabPages
oTabPages(0).Caption = "기성작업"

'기본적으로 2개의 탭페이지가 만들어지지만 그 이후 추가하려면
'oTapPages.Pages.Add 하면서 계속 만들수 있다
oTabPages.Pages.Add
oTabPages(1).Caption = "기성물량편집"
oTabPages(2).Caption = "편집"
oTabPages.Left = 6
oTabPages.Top = 6
Set createTabPage = oTabPages
End Function

위에서 만들어진 MultiPage의 이벤트를 처리할 크래스모듈의 내용은 아래와 같다

Option Explicit

Public WithEvents oMultiPage As MSForms.MultiPage

Private Sub oMultiPage_Change()
On Error Resume Next
...
Select Case oMultiPage.Value
    Case 1, 2
        ...
        ...
        If oMultiPage.Value = 1 Then
            서식이나 편집을 위한 작업으로 이동
	Else
	물량입력작업을 위한 시트로 이동
        End If
        ...
        ...
        ...
    Case 0
        메인 시트로 이동
End Select
End Sub

목록상자도 역시 위와 같은 요령으로 만들어지고
목록상자에는 작업내용의 요약본이 나타나게 되고
목록상자의 작업명을 선택하면 시트상의 해당작업내용으로 스크롤되게 한다
그리고 목록상자가 하나 더 추가 되어
이것은 기성발생의 회수별 목록이 추가된다
해당 기성회수를 선택하면 시트상의 해당기성범위로 이동되게 한다
현재는 기성이 한번도 발생하지 않은 도급내역만 있는 시트이다
이럴때 UserForm은 기성회수내용을 읽어서 하나도 없으면 빈탕의 목록만 있겠고..
기성추가 버튼을 크릭하면 현재의 기성회수에 따라서 다음회수의 기성작성
범위테이블을 시트에 자동추가하게 한다
이 이부분까지 해보도록 하자



기성추가 버튼을 크릭하면 해당 회수의 기성물량작성테이블이
열방향으로 추가되어 간다



그리고 회수목록상자에 해당회수명이 추가 되고
이 목록의 회수를 선택하면 쉽게 해당 범위가 시트상에서 이동된다

아래의 화일에서 UserForm을 열고 그림과 같이 이동하여
기성추가 버튼을 크릭하시고, 새로운 테이블이 추가됨을 확인하시고
목록상자의 아이템을 선택할때마다 입력셀에 활성화되는것을 확인해보시기 바란다



***[LOG-IN]***