현재 작성한 시트에서 매크로를 실행하여 CSV 로 저장하는 VBA 코드입니다.
Sub SaveAsCSV()
Dim myPath As String
Dim myFileName As String
Dim currentTime As String
Dim myWB As Workbook
Dim myWS As Worksheet
' 현재 워크시트와 워크북을 가져오기
Set myWS = ActiveSheet
Set myWB = ActiveWorkbook
' 만약 현재 엑셀 문서가 저장되지 않았다면 저장 메시지를 표시하고 저장
If myWB.Saved = False Then
response = MsgBox("저장되지 않은 변경 사항이 있습니다. 저장하시겠습니까?", vbQuestion + vbYesNo, "저장")
If response = vbYes Then
myWB.Save
End If
End If
' 현재 시간을 파일 이름에 사용할 형식으로 변환
currentTime = Format(Now(), "yyyy-mm-dd_hh-mm-ss")
' 파일 저장 대화상자 열기
myPath = Application.GetSaveAsFilename(InitialFileName:=currentTime, FileFilter:="CSV Files (*.csv), *.csv")
' 사용자가 파일 이름을 지정하고 확인을 눌렀을 경우에만 파일 저장
If myPath <> "False" Then
' 파일 경로와 파일 이름 분리
myFileName = Right(myPath, Len(myPath) - InStrRev(myPath, Application.PathSeparator))
myPath = Left(myPath, InStrRev(myPath, Application.PathSeparator))
' 새 워크북 만들기
Workbooks.Add
' 데이터 복사해서 붙여넣기
myWS.Cells.Copy
ActiveWorkbook.Sheets(1).Cells.PasteSpecial xlPasteValues
' CSV 파일로 저장
ActiveWorkbook.SaveAs Filename:=myPath & myFileName, FileFormat:=xlCSV, CreateBackup:=False
ActiveWorkbook.Close SaveChanges:=False
MsgBox "파일 저장 완료!"
Else
' 사용자가 파일 이름을 지정하지 않고 취소를 눌렀을 경우
MsgBox "파일 저장이 취소되었습니다."
End If
End Sub
위 코드는 엑셀의 VBA를 사용하여 현재 활성화된 워크시트를 CSV 파일로 저장하는 매크로입니다.
매크로는 아래와 같이 구성되어 있습니다.
변수 선언하기
✏️ MyFilePath, MyFileName, CurrentWB, CurrentWS, myPath, myFileName, currentTime, myWB, myWS: 변수를 선언하고 각 변수에 대한 설명을 주석으로 기록합니다.
현재 워크시트와 워크북 가져오기
✏️ Set 문을 사용하여 현재 워크시트와 워크북을 가져옵니다.
파일 경로 및 이름 지정하기
✏️ MyFilePath 및 MyFileName 변수를 사용하여 파일 경로와 이름을 지정합니다.
✏️ currentTime 변수를 사용하여 현재 시간을 파일 이름에 사용할 형식으로 변환합니다.
파일 저장 대화상자 열기
✏️ Application.GetSaveAsFilename 메서드를 사용하여 파일 저장 대화상자를 엽니다.
✏️ 사용자가 파일 이름을 지정하고 확인을 누르면 myPath 변수에 파일 경로 및 이름이 저장됩니다.
파일 저장
✏️ If 문을 사용하여 사용자가 파일 이름을 지정하고 확인을 눌렀을 경우에만 파일 저장합니다.
✏️ Right 및 Left 함수를 사용하여 파일 경로 및 이름을 분리합니다.
✏️ Workbooks.Add 메서드를 사용하여 새 워크북을 만듭니다.
✏️ Copy 및 PasteSpecial 메서드를 사용하여 데이터를 복사하고 붙여넣습니다.
✏️ ActiveWorkbook.SaveAs 메서드를 사용하여 CSV 파일로 저장합니다.
✏️ ActiveWorkbook.Close 메서드를 사용하여 새 워크북을 닫습니다.
저장 여부 확인
✏️ Application.DisplayAlerts 속성을 사용하여 저장 여부를 확인합니다.
✏️ 저장되지 않은 워크북이 있으면 저장하라는 메시지를 표시합니다.
✏️ 이 매크로는 엑셀에서 VBA를 사용하여 CSV 파일로 저장하는 방법을 보여줍니다.
만약 사용자가 저장되지 않은 워크북이 있을 경우에는 저장 여부를 확인하는 메시지를 표시하여 사용자가 잃어버리는 정보를 최소화할 수 있습니다.
'써니의 IT' 카테고리의 다른 글
엑셀 IF, DATEIF 함수를 예시로 살펴보기 (0) | 2023.02.27 |
---|---|
파워쿼리로 로드한 테이블을 새로고침하는 VBA 코드 (0) | 2023.02.22 |
예시와 예시 파일로 알아보는 VLOOKUP (0) | 2023.02.21 |
IF, VLOOKUP, AND, OR, NOT 함수 예시로 알아보기 (0) | 2023.02.20 |
엑셀 VLOOKUP 으로 원하는 값 찾아오기 (0) | 2022.12.11 |
엑셀 드롭다운 '목록박스' 만들기 (데이터 유효성 - 목록) (0) | 2022.12.11 |
엑셀 IF 조건문 AND, OR 사용하기 (0) | 2022.12.10 |
엑셀 COUNTIF / COUNTIFS 로 조건에 맞는 값만 세기 (0) | 2022.12.09 |
댓글