노래가사 파일로 내보내기
노래 가사를 파일로 내보내기를 하고 싶은 경우가 있어서 엑셀 VBA 를 이용하여 내보내기를 해 본 적이 있습니다. 아래 VBA Code 는 지금보다 더 초보시절에 최선을님께서 만들어주신 겁니다.
노래가사 파일형식은 lrc 로 되어 있고요. 내용은 텍스트형식으로 되어 있습니다.
아래 코드에 대해 간략하게 설명을 하자면.....
1. 파일경로가 있는지 검사하고 없다면 파일경로 폴더를 생성하라.
2. 파일로 내보낼 셀을 For Each 문을 이용하여 돌려라.
3. IF문으로 조건을 검사하여 윗셀과 아래셀을 검사하여 서로 같으면 내용을 같은 파일로 저장하고,
다르면 파일에 저장하라.
4. 파일명을 생성하고 내용을 채워서 저장한다.
- 파일에 데이터를 쓰기 위해서는 Print # 문을 사용한다.
- Print #filenumber, output
- Line Input # 문으로 읽어 온 데이터는 일반적으로 Print #을 사용하여 파일을 저장
Sub LRC내보내기()
Dim ff As Integer
Dim rngC As Range
Dim Data As String
If Len(Dir(ThisWorkbook.Path & "\lrc\", vbDirectory)) = 0 Then
MkDir ThisWorkbook.Path & "\lrc" '// 파일경로가 없을 경우 파일경로 생성
End If
Data = [B2] & " " & [C2]
For Each rngC In Range([D3], Cells(Rows.Count, "D").End(3)(2))
'// D3부터 D열 마지막셀까지 rngC에 할당하라
'//.End(3)이면 마지막 셀이고, .End(3)(2)이면 마지막 셀 다음 셀
If rngC.Offset(-1) <> rngC Then
'// 순환하는 현재셀 rngC가 D3라면 rngC.Offser(-1)은 D2 셀이므로 바로 윗셀과 같지 않으면 이란 의미
ff = FreeFile
'// 변수에 파일 번호를 할당
Open ThisWorkbook.Path & "\lrc\" & rngC.Offset(-1).Text For Output As #ff '// 텍스트 파일로 내보냄
'// 파일을 연다. 파일번호는 #ff
Print #ff, Data '// Data의 내용을 텍스트 파일에 입력
Close #ff '// 작업을 마치고 파일을 닫는다
Data = rngC.Offset(, -2) & " " & rngC.Offset(, -1)
'// 현재 순환하는 셀의 왼쪽 두번째 셀과 + 공백 + 왼쪽 첫번째 셀값을 변수에 넣음
Else
Data = Data & vbNewLine & rngC.Offset(, -2) & " " & rngC.Offset(, -1)
End If
Next
MsgBox "완료!!", 64, "최선을"
End Sub
'업무 능력 향상 > 엑셀 VBA 활용' 카테고리의 다른 글
[VBA] 지정한 열만 텍스트 파일로 내보내기 (0) | 2014.08.28 |
---|---|
[VBA] 현 시트내용을 서식 포함 여러개 파일로 분할 저장 (0) | 2014.08.27 |
[VBA] 중복개수 표시 (0) | 2014.08.23 |
[VBA]MySQL 데이터 엑셀로 가져오기 (0) | 2014.07.28 |
VBA 와 MYSQL 연동 준비작업 (0) | 2014.07.28 |