728x90

노래가사 파일로 내보내기


노래 가사를 파일로 내보내기를 하고 싶은 경우가 있어서 엑셀 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

블로그 이미지

Link2Me

,