1. 엑셀파일의 구조
1.1. 매크로 실행 시트 (탭 이름 : 이름)
(1) 성명 : 성명 아래 작성된 이름에 따라 양식이 변경됨.
(2) "통합양식생성" 단추 : 해당 단추를 누르면 매크로 실행
1.2. 양식 시트 (탭 이름 : 양식)
매크로 실행에 따라 일정한 셀의 값이 변경되는 시트.
2. 결과
2.1. "통합양식생성" 단추를 눌렀을 때
2.2. "통합양식생성 매크로" 창에서 "예(Y)"를 눌렀을 때
2.3. 결과
- 노란색 셀의 값이 "대상자 : "에서 "대상자 : a"로 변경된 모습
- "이름" 탭의 "성명" 셀 아래의 순서대로 탭이 생성되었다.
3. 코드
Sub 통합양식생성()
'해당 매크로를 실행시킬 것인지 묻는 대화창 출력
'대화창에 배정될 변수명 : confirm
Dim confirm
confirm = MsgBox("A열에 포함된 모든 열을 대상으로 양식이 생성됩니다. 진행합니까?", vbYesNo, "통합양식생성 매크로")
'만약 사용자가 예(6)로 입력할 경우
If confirm = 6 Then
Dim a As Integer
Dim b As Long
'b = 마지막 셀의 행값을 반환합니다.
b = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row
'A열의 첫번째부터 마지막까지 반복합니다.
For a = 2 To b
Worksheets("이름").Select
Set 양식 = Worksheets("양식")
'"성명" 아래에 입력된 데이터 순서대로 Name변수에 배정
Name = Cells(a, 1)
'양식 시트의 "대상자" 2행 ~ 행의 끝까지 반환한다.
양식.Cells(2, 1).Value = "대상자 : " & Name
'이름별 시트 생성'
Sheets("양식").Copy after:=Worksheets(Worksheets.Count)
'대상자의 이름과 구분선, 그리고 번호로 탭을 구분한다
Worksheets(Worksheets.Count).Name = Name & "_" & a - 1
Next
Worksheets("이름").Select
'모든 반복이 끝나면 몇 개의 탭이 생성되었는지를 출력하는 대화창 출력
MsgBox "총 " & b - 1 & "개의 양식이 생성되었습니다.", vbOKOnly, "통합양식생성 완료"
End If
End Sub
'전문지식 함양 > TIL' 카테고리의 다른 글
[프로그래머스 겨울방학 인공지능 과정] Transformer 이론 기초 (0) | 2022.02.22 |
---|---|
[프로그래머스 겨울방학 인공지능 과정] Transformer 이론 기초 (0) | 2022.02.21 |
[프로그래머스 겨울방학 인공지능 과정] Neural Image Caption 이론 (0) | 2022.02.20 |
[프로그래머스 겨울방학 인공지능 과정] Sequence to Sequence Learning with Neural Networks - 이론 (0) | 2022.02.20 |
[프로그래머스 겨울방학 인공지능 과정] CNN을 활용한 풍경 이미지 분류 실습1 (0) | 2022.02.17 |