EXCEL - VBA

엑셀의 표를 티스토리의 표로 변환하는 매크로(2) - 가운데 정렬, 굵게

별동산 2022. 9. 28. 08:04
반응형

1.  헤더 가운데 정렬, 글자 굵게

 

가. 티스토리에서 가운데 정렬, 글자 굵게

구분 내용
1. 구분1 내용은 이렇습니다.

 

위와 같은 표에서 첫번째 줄 구분과 내용을 가운데 정렬하려면 구분과 정렬을 마우스로 끌어서 범위로 지정한 후 도구 상자에서 가운데 정렬 아이콘을 누르면 됩니다.

티스토리 가운데 정렬 아이콘

 

그러면 아래와 같이 되고, 그리고 굵게 하려면 마찬가지로 범위를 선택한 후 도구 상자에서 B 아이콘을 누르면 됩니다.

구분 내용
1. 구분1 내용은 이렇습니다.

 

 

나. 엑셀에서 가운데 정렬, 글자 굵게

가운데 정렬은 <td> 태그안에 style="text-align:center"을 추가하고, 글자 굵게는 글자 좌우에 <b> 태그를 추가하면 됩니다.

따라서 아래와 같이 코드를 수정하면 됩니다.

당초 수정
<td>구분</td> <td style="text-align:center;"><b>구분</b><//td>

 

그리고, 1행만 그렇게 해야 하므로 if 조건문을 사용해야 합니다. 따라서, https://lsw3210.tistory.com/149 에서 작성한 코드중 반복해서 td를 작성하는 부분을 수정해야 합니다.

 

티스토리표변환.xlsm
0.02MB

 

먼저 위 파일을 여는데 매크로 실행이 안된다고 하면 

https://lsw3210.tistory.com/146 글을 참고하여 신뢰할 수 있는 위치를 추가한 다음 그 위치에 저장해야 합니다.

 

파일 탭에서 '다른이름으로 저장' 메뉴를 선택한 후 '티스토리변환(병합)'이라고 파일명을 수정하고 저장 버튼을 누릅니다.

엑셀 다른 이름으로 저장

 

윈도우 또는 엑셀 버전에 따라 아래와 같은 화면일 수도 있습니다.

엑셀 다른 이름으로 저장2

 

개발도구 - Visual Basic 명령을 눌러 VBE(Visual Basic Editor)를 실행한 후

오른쪽 코드 창을 아래와 같이 수정합니다.

Sub make_table()
'변수 형식 선언
    Dim end_Row As Integer, end_Col As Integer, i As Integer, j As Integer
    
    ' 마지막 행과 열을 구함
    end_Row = Range("a1000").End(xlUp).Row
    end_Col = Cells(Range("a1000").End(xlUp).Row + 1, 100).End(xlToLeft).Column
    If end_Col = 1 Then
        For j = 1 To 100
            If InStr(Cells(end_Row, j), "<tr>") > 0 Then
                end_Col = j - 1
                Exit For
            End If
        Next
    End If
    
    ' 기존 데이터 지움
    Range(Cells(1, end_Col + 1), Cells(end_Row, 100)).ClearContents
    
    ' 첫번째로 기록할 셀에 table, tbody 입력
    Cells(1, end_Col + 1) = "<table style='border-collapse: collapse; width: 100%;' border='1' data-ke-align='alignLeft'><tbody>"
    
    '1행부터 끝행까지 반복 처리
    For i = 1 To end_Row
        '1열부터 끝열까지 반복 처리
        For j = 1 To end_Col
            '첫열에는 여는 tr태그, 끝열에는 닫는 tr태그를 넣고, 나머지는 td태그로 열고 닫기만 함
            Select Case j
                Case 1:
                    If i = 1 Then
                        Cells(i, end_Col + j) = Cells(i, end_Col + j) & "<tr><td  style='text-align:center;'><b>" & Cells(i, j) & "</b></td>"
                    Else
                        Cells(i, end_Col + j) = Cells(i, end_Col + j) & "<tr><td>" & Cells(i, j) & "</td>"
                    End If
                Case end_Col:
                    If i = 1 Then
                        Cells(i, end_Col + j) = Cells(i, end_Col + j) & "<td  style='text-align:center;'><b>" & Cells(i, j) & "</b></td></tr>"
                    Else
                        Cells(i, end_Col + j) = Cells(i, end_Col + j) & "<td>" & Cells(i, j) & "</td></tr>"
                    End If
                Case Else:
                    If i = 1 Then
                        Cells(i, end_Col + j) = Cells(i, end_Col + j) & "<td  style='text-align:center;'><b>>" & Cells(i, j) & "</b></td>"
                    Else
                        Cells(i, end_Col + j) = Cells(i, end_Col + j) & "<td>" & Cells(i, j) & "</td>"
                    End If
            End Select
        Next
    Next

' 마지막에 닫는 tbody와 table 태그 추가
Cells(end_Row, end_Col + j - 1) = Cells(end_Row, end_Col + j - 1) & "</tbody></table>"
End Sub

 

주의할 점은 style="text-align:center;"라고 큰따옴표안에 넣으면 밖의 큰따옴표와 짝을 찾기 때문에 style 문을 style='text-align:center;'와 같이 작은 따옴표로 감싸야 한다는 것입니다. 

 

3. 티스토리에 붙여넣기

 

가. 엑셀에서 작업

C1을 마우스 왼쪽 버튼으로 클릭한 다음 Shift 키를 누른 상태에서 Ctrl키와 End키를 누릅니다. 그러면 아래와 같이 HTML 코드 부분이 선택됩니다. 홈 탭에서 복사 명령을 누릅니다.

 

HTML 코드 복사

 

나. 티스토리에서 작업

티스토리에서 기본모드를 누른 다음 HTML 모드로 변경합니다.

그리고, 맨 아래로 이동한 다음 Enter키를 눌러 한 줄을 추가한 다음 Ctrl + V키를 눌러 붙여넣습니다.

아래와 같이 되는데, 오른쪽으로 길어지기 때문에 오른쪽은 잘랐습니다.

티스토리 HTML 코드 복사

 

이제 HTML 모드를 눌러 기본모드로 변경합니다.

티스토리 기본모드로 돌아가기

 

아래와 같이 구분과 내용이 가운데 정렬되고, 글자도 굵게 표시됩니다.

구분 내용
1. 구분1 내용은 이렇습니다.

 

파일명을 중복을 피하기 위해 뒷부분에 (가운데 정렬,굵게)을 추가했습니다.

티스토리표변환(가운데정렬,굵게).xlsm
0.02MB

 

병합된 셀은 따로 다루도록 하겠습니다.

반응형