엑셀 매크로 프로그램으로 인사관리 시스템을 만들고 있는 데 사원번호를 선택하면
사진을 보여주는 프로그램을 만들려고 합니다.
[개발도구]-[VBA] - 폼- UserForm1 을 클릭하면
사용자 정의 폼 - 성명 옆에 이미지 컨트롤을 추가합니다.
추가하기전에 화면 배치를 조정 합니다.
추가후에 ListBox1 의 Click 이벤트에 매크로 프로그램을 작성합니다.
기존에 작성된 내용에 이미지 컨트롤 추가한 Image1 에 그림이 표시되도록 한다.
Private Sub ListBox1_Click()
Dim as_Dir, as_Pic As String
as_Dir = ThisWorkbook.Path
' MsgBox "The selected item is " & ListBox1.ListIndex
' MsgBox ListBox1.List(ListBox1.ListIndex, 0)
' ListBox1 에서 선택하면 화면에 데이터를 보여줍니다.
UserForm1.as_sabun = ListBox1.List(ListBox1.ListIndex, 0) '사번
UserForm1.as_name.Text = ListBox1.List(ListBox1.ListIndex, 1) '성명
'UserForm1.as_jumin.Text = ListBox1.List(ListBox1.ListIndex, 2) '주민등록번호
UserForm1.as_jumin.Text = Left(ListBox1.List(ListBox1.ListIndex, 2), 6) & "-" & Right(ListBox1.List(ListBox1.ListIndex, 2), 7) '주민등록번호
UserForm1.as_addr.Text = ListBox1.List(ListBox1.ListIndex, 3) '주소
UserForm1.as_dept.Text = ListBox1.List(ListBox1.ListIndex, 4) '소속
UserForm1.as_grade.Text = ListBox1.List(ListBox1.ListIndex, 5) '직위
UserForm1.as_indate.Text = ListBox1.List(ListBox1.ListIndex, 6) '입사일
UserForm1.as_years.Text = ListBox1.List(ListBox1.ListIndex, 7) '근무년수
as_Pic = as_Dir & "\사진\" & UserForm1.as_sabun & ".jpg"
If Dir(as_Pic) <> "" Then '파일유무 체크
UserForm1.Image1.Picture = LoadPicture(as_Pic) '이미지 (사번.jpg)
Else
UserForm1.Image1.Picture = LoadPicture("")
End If
End Sub
사진을 가져오기 위하여 as_Pic = as_Dir & "\사진\" & UserForm1.as_sabun & ".jpg" 지정을 해준다
사진이 있는지 확인 하는 방법은 Dir(as_Pic) 의 값이다.
If Dir(as_Pic) <> "" Then '파일유무 체크
지정된 as_Pic 의 값을 사진 화일이 있으면
UserForm1.Image1.Picture = LoadPicture(as_Pic) 에서 가져온다.
사진 화일이 없으면
UserForm1.Image1.Picture = LoadPicture("") 으로 공백으로 채워준다.
사진을 저장한 위치는
엑셀 화일의 위치 as_Dir = ThisWorkbook.Path 으로 지정을 해준다
사번.jpg 화일을 엑셀화일 위치 밑에 "사진" 디렉토리 밑에 사번.jpg (KR-001.jpg) 이 있어야 한다.
매크로프로그램에서는 다음과 같이 해주면 위치에 사번.jpg 을 가져올 수 있습니다.
as_Dir & "\사진\" & UserForm1.as_sabun & ".jpg"
가져오는 방법은 LoadPicture(as_Pic) 으로 사진을 가져온다.
사진 디렉토리를 만들고 사진디렉토리에 사번.jpg를 저장해야 한다.
인사관리 실행단추를 실해 봅니다.
사번을 선택하면 이미지 컨트롤에 사진이 나타납니다.
사진화일이 없을 경우 공백으로 채워 줍니다.
이렇게 사진을 사용자 정의 폼에 나타낼 수 있습니다.
샘플 화일(kr-001.jpg, kr-002.jpg) 을 사진 디렉토리에 넣고 인사관리 실행 단추를 눌러 확인 합니다.
다양한 기능을 구현해 보도록 하겠습니다.
'엑셀매크로' 카테고리의 다른 글
엑셀 매크로 사용자 정의 폼 셀에 자료입력 (0) | 2023.02.08 |
---|---|
엑셀 사용자 정의 폼 콤보박스 활용 (0) | 2023.02.07 |
엑셀 사용자 정의 폼 - ListBox 사용 (0) | 2023.02.02 |
엑셀 셀 데이터 사용자정의폼에 가져오기 (0) | 2023.02.01 |
엑셀 매크로 인사관리 프로그램 화면 구성하기 (0) | 2023.01.31 |
댓글