
PowerPoint VBAを使い、テキストボックスを重ねて作ったフチ文字(袋文字)の背面のテキストの線幅を調整するマクロをご紹介します。
前面のテキストを重ねた状態で線幅が調整できるので、仕上がりを確認しながら調整できます。
フチ文字の線幅を太くするマクロ
コード
Sub フチ文字の線幅を太くする()
Dim shp As Shape
Dim col As New Collection
Dim col_shp As Shape
With ActiveWindow.Selection
'テキスト編集モードの場合はシェイプを選択
If .Type = ppSelectionText Then .ShapeRange.Select
For Each shp In .ShapeRange
If shp.Type = msoGroup Then
'コレクションに要素を追加
col.Add shp
Else
MsgBox "テキストボックスをグループ化してください。"
Exit Sub
End If
Next
End With
Do While col.Count > 0
For Each col_shp In col
For Each shp In col_shp.GroupItems
If shp.Type = msoGroup Then
'コレクションに要素を追加
col.Add shp
Else
'線幅があれば太くする
With shp.TextFrame2.TextRange.Font.Line
If .Weight >= 0 Then
.Weight = .Weight + 1
End If
End With
End If
Next
'コレクションから要素を削除
col.Remove 1
Next
Loop
End Subフチ文字の線幅を細くするマクロ
コード
Sub フチ文字の線幅を細くする()
Dim shp As Shape
Dim col As New Collection
Dim col_shp As Shape
With ActiveWindow.Selection
'テキスト編集モードの場合はシェイプを選択
If .Type = ppSelectionText Then .ShapeRange.Select
For Each shp In .ShapeRange
If shp.Type = msoGroup Then
'コレクションに要素を追加
col.Add shp
Else
MsgBox "テキストボックスをグループ化してください。"
Exit Sub
End If
Next
End With
Do While col.Count > 0
For Each col_shp In col
For Each shp In col_shp.GroupItems
If shp.Type = msoGroup Then
'コレクションに要素を追加
col.Add shp
Else
'線幅があれば細くする
With shp.TextFrame2.TextRange.Font.Line
If .Weight > 0 Then
.Weight = .Weight - 1
End If
End With
End If
Next
'コレクションから要素を削除
col.Remove 1
Next
Loop
End Sub
実行結果
フチ文字を作る手順で線幅設定なしとありのテキストボックスを用意します。

通常は、この段階でだいたいの線幅を設定してからテキストボックスを重ね合わせますが、テキストボックスを重ねていないので仕上がりがいまいち分かりません。
そこでマクロの登場です。

線幅なしとありのテキストボックスを重ね合わせてグループ化します。

グループ化したテキストボックスを選択した状態でマクロを実行すると、テキストボックスを重ねた状態で背面のテキストの線幅が調整できます。

テキストボックスをずらす必要がないので便利ですね。






















