Powerpointで袋文字をワンクリックで設定するマクロ

効率化
スポンサーリンク

パワーポイント/Powerpointを使っていますか?

普段ビジネスで使っている人は、Word/Excel並に利用する頻度が高いソフトだと思っています。

背景があるときに文字が溶け込んでしまって見づらい現象とか、あるあるネタだと思います。

そんなときに利用する「袋文字」を、ワンクリックで設定するマクロを組んだのでご紹介します。

袋文字って何?

百聞は一見にしかず。こういうやつです。

これの下の方式が「袋文字」です。

パッと見、上は文字が背景に溶け込んでわかりづらくなってますが、下は見やすくなっていると思います。

そもそも、ここまで背景が主張してくることはそんなになさそうですが笑

背景画像の明度を意識してパワポ作ればいいんですが……
デザインセンスがあるわけではないので、黒一色で構成するときには必須のテクニックになります。

袋文字を一発で設定するマクロ

Sub 袋文字作成_10()
    Call make_fukuromoji(10)
End Sub


Function make_fukuromoji(weight)

    Dim n As Long
    
    '選択中のスライド番号を取得
    n = ActiveWindow.Selection.SlideRange.SlideIndex

    For Each shp In ActiveWindow.Selection.ShapeRange
        
        '選択中のテキストボックスをコピー
        With ActiveWindow.Selection
    
            'テキストボックスが選択されていない場合はマクロを終了
            If shp.HasTextFrame = msoFalse Or shp.TextFrame.HasText = msoFalse Then
                Exit Function
            End If
        
            With shp
                'テキストボックスの名前を仮で決める
                .Name = "txt1"
                '最前面へ移動
                .ZOrder msoBringToFront
                'テキストボックスをコピー
                .Copy
                'テキストボックスの位置を代入
                x = .Top
                y = .Left
            End With
        End With
    
    
        'コピーした元のテキストボックスを複製して袋文字にする
        With ActivePresentation.Slides(n).Shapes.Paste
            'テキストボックスの名前を仮で決める
            .Name = "txt2"
            '背面へ移動
            .ZOrder msoSendBackward
            'テキストボックス移動
            .Top = x
            .Left = y
            '文字線幅
            .TextFrame2.TextRange.Font.Line.weight = weight
            '文字色を白にする
            .TextFrame.TextRange.Font.Color.RGB = RGB(255, 255, 255)
            .TextFrame2.TextRange.Font.Line.ForeColor.RGB = RGB(255, 255, 255)
        End With
        
        'テキストボックスをグループ化
        With ActivePresentation.Slides(n).Shapes
            .Range(Array("txt1", "txt2")).Group
            .Range("txt1").Name = .Range("txt1").Id
            .Range("txt2").Name = .Range("txt2").Id
        End With

    Next shp
End Function

コピペでOKです。

Appendix

袋文字作成_10 (line 1)

マクロとして起動するときの、呼び出し口です。

これをリボンやクイックアクセスツールバーに登録します。

make_fukuromoji (line 6)

こちらが処理本体です。

weightにお好きな数字を入れて呼び出せばOK。

ワンクリックを実現するために、この辺の数字の入力は極力省いています。
一回一回手動で太さを変えたい場合は、呼び出し元とかにinputのダイアログを出せばOKだと思います。(型チェックはしないとエラーになると思う)

私は、太さ5と10の2つを呼び出し元に設定して、文字の大きさに応じて適当に使い分けています。

いちいち数字なんて入力してられない(極度のめんどくさがり)

RGB~(line 49,50)

もし袋文字の色を変えたい場合は、ここをいじると色を変えられます。

グループ化されたオブジェクトは対応してない

対応しているのはテキストボックスのみです。

このマクロって、どうやって設定するの?

Microsoftの公式文書は以下となります。

[開発] タブを表示する
必要に応じて、 タブをリボンに追加します。

別にマクロにしなくて良くない?

これを、手動で実現しようとすると、実はめちゃくちゃめんどくさいのです……

処理的には何をしているかを概要で言うと

  • マクロにしたい文字列をコピペ
  • コピペした文字列を背面に
  • 中央揃え
  • 左右揃え
  • 文字の線幅を設定(するために、プロパティ開いて線幅開いて……)
  • グループ化(これはしてもしなくてもいいけど)

これをオブジェクトごとに設定するのがマジでツライです。

そのため、今回のマクロを組んで快速パワポ作業を実現しました。

YMT4
YMT4

そもそも、パワポで袋文字対応してくれれば、こんなことしなくてもいいんですけどね!

いちいちファイルにマクロ設定したくないんだけど……

ですよね。

実は、マクロを埋め込んだファイルを別に用意することで、マクロ設定やマクロ有効ファイルにしなくてもマクロを使うことができます。

別の記事で解説予定です。

2020/11/28 追記しました。

参考

まとめ

手前味噌で恐縮ですが、このマクロ

YMT4
YMT4

本当に楽!

です。

報告のための報告資料とか時間の無駄なので、作らないに越したことはないのですが……

作らないといけない場面が多いので、私にとってはとても有効な手段でした。

「袋文字設定、めんどくさい!」と思っている方、ぜひ試してみてください。

タイトルとURLをコピーしました