본문 바로가기

WeekdayLife

[파워포인트VBA] 텍스트박스 여백(margin) 없애기

텍스트박스의 여백의 기본값은 좌우 0.25cm, 위아래 0.13cm인데, 대부분의 경우, 그대로 두는 것이 좋다.

하지만, 아래 그림의 박스처럼, 약간의 공간이 부족해서, 텍스트의 줄이 밀리는 경우가 있는데, 여백값을 조정해주면 원하는 결과를 얻을 수 있다.

또, 텍스트박스의 줄을 맞출 때, 여백이 있다면, 시작점을 맞추기 애매한 경우가 있어, 아예 0으로 만드는 간단한 VBA를 짜본다.

 

 

 

아래는 VBA를 실행한 결과이며, vertical alignment를 middle로 모든 방향의 margin값을 0으로 만드는 아주 간단한 코드이다.

 

 

 

코드는 아래와 같이 최대한 간단하게 짜보았다. 되기만 하면 되는거 아닌가.

테이블 분기를 두었으니, 테이블에서도 사용이 가능하다.

단일 오브젝트에 대해서만 처리가 가능하니 주의 해야한다.

 

Sub textMarginZero()

Dim shp As Shape
Dim activeshape As Shape
Dim myt As Table

If ActiveWindow.Selection.Type = ppSelectionShapes Then
    For Each shp In ActiveWindow.Selection.ShapeRange
        Set activeshape = shp
            Exit For
    Next shp
Else
    MsgBox "There is no shape currently selected!", vbExclamation, "No Shape Found"
    Exit Sub
End If

If shp.HasTable Then
    Set myt = shp.Table    
    cnum = myt.Columns.Count
    rnum = myt.Rows.Count            
    With myt
        For c = 1 To cnum
            For r = 1 To rnum
              .Cell(r, c).Shape.TextFrame2.MarginTop = 0
              .Cell(r, c).Shape.TextFrame2.MarginBottom = 0
              .Cell(r, c).Shape.TextFrame2.MarginLeft = 0
              .Cell(r, c).Shape.TextFrame2.MarginRight = 0
              .Cell(r, c).Shape.TextFrame2.VerticalAnchor = msoAnchorMiddle
            Next r
        Next c
    End With
Else    
    With shp.TextFrame2
        .MarginTop = 0
        .MarginBottom = 0
        .MarginLeft = 0
        .MarginRight = 0
        .VerticalAnchor = msoAnchorMiddle
    End With
End If

End Sub

 

 

끝.