본문 바로가기
WeekdayLife/powerpoint

[파워포인트] 엑셀 표(테이블) 복사할때 띄어쓰기(공백) 문제

by JO_i 2023. 3. 4.

엑셀표를 파워포인트에 붙일 때 공백없애기

아래와 같이 회계 형식으로 되어 있는, 엑셀의 표를 파워포인트에 붙일 때는, 항상 멈칫하게 된다.

 

 

 

왜냐..... 원치 않는 공백들이 생겨날 것을 알고 있기 때문이다. 상당히 귀찮은 녀석이다.

 

 

 

해결책은 간단하다. 표 안에서 셀을 전체 선택(ctrl+a)한 다음, 바꾸기(ctrl+h)로 공백(스페이스바 한번) 하나를 넣어 모두 바꾸기 해주면 된다.

 

 

 

 

 

이 정도로 끝나는 문제라면 글을 남기지 않았으리라....

경험많고 눈치가 빠른 사람이라면, 순간 알아냈겠지만, 여전히 알 수 없는 공백 문자가 남아서 숨어있다. 저 공백은, 왜 생기는지 잘 모르겠는데, 단순히 공백(" ")도 아니라서, 바꾸기도 안된다.

 

 

 

물론 해당 공백 자체를 복사해서 바꾸기를 한번 더 해 주는 방법도 있다.

하지만, 보다 스마트한 업무 처리를 하는 것처럼 보이기 위해, 아래와 같은 코드를 만들어 보았다.

정말... 별건 없고, 띄어쓰기와, 위에 남아있는 이상한 띄어쓰기, 줄바꿈이 들어가 있으면 순차적으로 없애는(바꿔준.. replace) 코드이다. 즉, 그냥... 문제가 되는 문자열에 대하여, 바꾸기를 한번씩 해준 것이다.

 

Sub delBlank()
    Dim shp As Shape
    Dim i As Long
    Dim j As Long
   
If ActiveWindow.Selection.Type = ppSelectionShapes Then
    For Each shps In ActiveWindow.Selection.ShapeRange
        Set shp = shps
        Exit For
    Next shps
Else
    MsgBox "There is no table!", vbExclamation
    GoTo DD:
End If
   
If shp.HasTable Then
    For i = 1 To shp.Table.Rows.Count
        For j = 1 To shp.Table.Columns.Count
            With shp.Table.Rows.Item(i).Cells(j).Shape.TextFrame.TextRange
                If IsNumeric(.Text) Then
                    .Text = Replace(shp.Table.Rows.Item(i).Cells(j).Shape.TextFrame.TextRange.Text, " ", "")
                    .Text = Replace(shp.Table.Rows.Item(i).Cells(j).Shape.TextFrame.TextRange.Text, " ", "")
                    .Text = Replace(shp.Table.Rows.Item(i).Cells(j).Shape.TextFrame.TextRange.Text, vbCr, "")
                End If
            End With
        Next j
    Next i
End If
   
DD:

End Sub

 

치명적인 한가지 문제는 표 안에 있는 문자에서도 띄어쓰기가 없어져 버리는 것이....참... 귀찮다....

정규식으로 처리해야하고...나중에  ppt toolkit에 추가할 예정이나...  지금은 아니다. 귀찮다.

🤗 IsNumeric method로 숫자 여부를 확인하여, 숫자에만 적용하는 방식으로 수정하였다.

 

끝.