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
実行結果
フチ文字を作る手順で線幅設定なしとありのテキストボックスを用意します。
通常は、この段階でだいたいの線幅を設定してからテキストボックスを重ね合わせますが、テキストボックスを重ねていないので仕上がりがいまいち分かりません。
そこでマクロの登場です。
線幅なしとありのテキストボックスを重ね合わせてグループ化します。
グループ化したテキストボックスを選択した状態でマクロを実行すると、テキストボックスを重ねた状態で背面のテキストの線幅が調整できます。
テキストボックスをずらす必要がないので便利ですね。