며칠 전에, 코드 하나도 할 줄 모르는, 엑셀도 잘 못하는 친구에게 어떤 작업 좀 도와달라는 요청이 왔습니다!
그 내용은, 연도별로, 한 달씩 엑셀 파일을 만들고 엑셀 파일에서는 날짜별로 Sheet를 만드는 것이었습니다!
그림으로 설명하자면,
위 사진처럼, 월별 엑셀 파일이 있고, 각 엑셀 파일마다 날짜로 구분된 시트가 있게 해 달라는 거죠 ^^
자, 이걸 코딩 아무것도 모르는 사람입장에서 ChatGPT를 이용해서 만들어보겠습니다.
1. 컴퓨터에게 하고 싶은 일을 잘 설명해야 합니다.
제가 하고 싶은 일을 정리하면,
a. 연도를 입력하면 월별로 엑셀 파일을 생성한다.(파일 이름은 yyyy-mm.xlsx 이다)
b. 월별 엑셀 파일에는 날짜별 Sheet를 생성한다.(시트 이름은 y월 m일이다)
c. 날짜별 시트에는 "월별생성기. xlsm" 파일의 'sample' 시트의 내용을 복사한다.
d. 날짜별 시트의 range('a1') 셀에는 'y월 m일'이 들어가게 한다 (시트이름이랑 같음)
2. 명령하고 싶은 내용을 ChatGPT가 잘 이해할 수 있게 한다.
참고로 chatGPT 링크는 아래와 같습니다
이 내용을 코드내용 모른 채로 사용해 보도록 하겠습니다.
3. 엑셀 VBA 실행하기
먼저 "월별생성기. xlsm" 파일을 하나 만들었습니다.
여기에서 "Alt + F11" 버튼을 누릅니다.
우클릭 버튼을 이용해서 모듈을 생성해 줍니다.
생성된 모듈에, ChatGPT가 알려준 내용을 그대로 복사+붙여 넣기 한 다음 "F5"버튼을 눌러서 실행해 봅니다
친절하게 연도를 입력하라고 하네요 ^^
확인을 눌렀더니 이렇게, 문서 폴더에 잘 생성되었습니다
파일 생성 위치를 "월별생성기. xlsm"이 존재하는 위치로 변경하는 게 편하겠죠??
이럴 땐 또다시 chatGPT를 이용하시면 됩니다
이렇게 잘 수정해 줬네요 ㅎㅎ
수정된 내용으로 다시 복사해서 붙여 넣고 실행해 보겠습니다
이렇게 잘 되었네요 ^^
이렇게 코드 하나도 모르는 사람들도 chatGPT 이용해서 명령만 잘하면
원하는 작업을 손쉽게 이용하실 수 있답니다 ^^
#전체 코드
Sub CreateMonthlyExcelFiles()
Dim yearInput As Integer
Dim month As Integer
Dim lastDay As Integer
Dim startDate As Date
Dim endDate As Date
Dim outputPath As String
' 매크로 실행 파일의 경로를 가져옴
outputPath = ThisWorkbook.Path
yearInput = InputBox("연도를 입력하세요.", "연도 입력")
If yearInput <= 0 Then
MsgBox "올바른 연도를 입력하세요."
Exit Sub
End If
For month = 1 To 12
startDate = DateSerial(yearInput, month, 1)
lastDay = Day(DateSerial(yearInput, month + 1, 1) - 1)
endDate = DateSerial(yearInput, month, lastDay)
' 월별 엑셀 파일 생성
Dim fileName As String
fileName = outputPath & "\" & yearInput & "-" & Format(month, "00") & ".xlsx"
Workbooks.Add
ActiveWorkbook.SaveAs fileName
' 날짜별 시트 생성
Dim i As Integer
For i = 1 To lastDay
Sheets.Add(After:=Sheets(Sheets.Count)).Name = month & "월 " & i & "일"
' 시트에 'sample' 시트의 내용 복사
ThisWorkbook.Sheets("sample").UsedRange.Copy Destination:=Sheets(Sheets.Count).Range("A1")
' 시트의 첫 번째 셀에 날짜 추가
Sheets(Sheets.Count).Range("A1") = month & "월 " & i & "일"
Next i
' 엑셀 파일 저장
ActiveWorkbook.Save
ActiveWorkbook.Close
Next month
End Sub
'엑셀(엑셀 VBA)' 카테고리의 다른 글
3. 일찍 퇴근하기 (VBA 기초 + 모든 시트 병합) (1) | 2024.10.02 |
---|