『Wordマクロで作業スピードアップ』セミナーでインスパイアされ作った、文字のサイズを1ポイント大きくするPowerPointのマクロをご紹介しました。
フォントサイズを少しずつ大きくできるようになると、行間のほうも少しずつ広げたいという気持ちもわいてきます。
そんなマクロをVBA(Visual Basic for Applications)で作ってみました。
フォントを1ポイントずつ大きくするマクロとよく似ていますが、行間については行数で行間が指定されているときと、ポイント数で指定されているときがある点に注意しなければなりません。
Sub 行間を1ポイント広くする()
'行間を1pt広げる
Dim pt As Long
With ActiveWindow.Selection
'シェイプが選択されていない場合はマクロを終了する
If .Type = ppSelectionNone Or .Type = ppSelectionSlides Then
MsgBox "行間を変更したいプレースホルダなどを選択してください。"
Exit Sub
End If
'テキスト編集モードの場合にはシェイプを選択する
If .Type = ppSelectionText Then .ShapeRange.Select
'自動調整をオフにする
.ShapeRange.TextFrame.AutoSize = ppAutoSizeNone
With .TextRange
'元の行間を取得
If .ParagraphFormat.LineRuleWithin = msoTrue Then
'行数で設定されている場合はフォントサイズ行間からptを計算
pt = .Font.Size * 1.2 * .ParagraphFormat.SpaceWithin
Else
'ポイント数で設定されている場合はそのままポイント数を取得
pt = .ParagraphFormat.SpaceWithin
End If
'行間をポイント数で指定するように設定
.ParagraphFormat.LineRuleWithin = msoFalse
'行間を1ポイント広げる
.ParagraphFormat.SpaceWithin = pt + 1
End With
End With
シェイプが選択されていないときにマクロを終了する、テキスト編集モードのときにシェイプを選択する、自動調整をオフにするところまでは、既にご紹介しているフォントサイズを1ポイント大きくするマクロと同じです。
元の行間・現状の行間を取得する部分では、まずLineRuleWithinプロパティで
If .ParagraphFormat.LineRuleWithin = msoTrue Then
行間が行数で指定されているか、ポイント数で指定されているかを調べ、行数指定されている場合は、
pt = .Font.Size * 1.2 * .ParagraphFormat.SpaceWithin
フォントサイズサイズや行間などから、行間をポイント数にして変数「pt」に格納します。
私の環境では、フォントサイズ・文字サイズの1.2倍で丁度良く行間変更できるようでしたので、ここでは「1.2」を掛け算していますが、上手くいかない場合は調整してください。
ポイント数で設定されている場合は
pt = .ParagraphFormat.SpaceWithin
そのままポイント数を変数「pt」に格納します。
元の行間・現状の行間を取得できたら、行間をポイント数で指定するように設定し、
.ParagraphFormat.LineRuleWithin = msoFalse
行間を1pt広げています。
.ParagraphFormat.SpaceWithin = pt + 1
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » TextFrame・TextRange » 行間を1ポイント広くするPowerPointマクロ