【必読】パワポ本15選 👉

【パワポVBA】文字に影を設定する/影を非表示にするマクロ

PowerPoint VBAで「文字に影を設定してテキストボックスを作成するマクロ」「テキストボックス内の選択中の文字列に影を設定するマクロ」「影を非表示にするマクロ」をご紹介します。

Msoshadowtypeクラスの定数表もご覧いただけます。

マクロの使い方は、次の記事で解説しています。

PowerPointマクロ入門 | コピペで始める楽々コース

PowerPointマクロ入門 | コピペで始める楽々コース
PowerPointでマクロを始めたいけど、難しそうでよく分からないという方向けの入門編です。PPD…
スポンサーリンク
スポンサーリンク

文字に影を設定してテキストボックスを作成するマクロ

影を設定したテキストボックスを作成するマクロです。

Sub CreateTextBoxShadow()

    Dim n As Long
    Dim sld As Slide
    Dim shp As Shape
    
    '選択中のスライドを取得
    n = ActiveWindow.Selection.SlideRange.SlideIndex
    Set sld = ActivePresentation.Slides(n)

    'テキストボックスを作成
    Set shp = sld.Shapes.AddTextbox(msoTextOrientationHorizontal, 100, 100, 300, 100)

    'テキストを設定
    shp.TextFrame.TextRange.Text = "サンプルテキスト"

    'フォントを設定
    With shp.TextFrame.TextRange.Font
        .Name = "游ゴシック" 'フォント名
        .Size = 36 'フォントサイズ
        .Color.RGB = RGB(0, 0, 0) 'フォント色
    End With
    
    'テキストの折り返しを無効化
    shp.TextFrame.WordWrap = msoFalse
    
    '影を設定
    With shp.TextFrame2.TextRange.Font.Shadow
        .Type = msoShadow21 '標準スタイル(オフセット:右下)
        .ForeColor.RGB = RGB(0, 0, 0) '色
        .Transparency = 0.6 '透明度
        .Size = 100 'サイズ
        .Blur = 4 'ぼかし
        .OffsetX = 2.1213203436 '角度、距離
        .OffsetY = 2.1213203436 '角度、距離
    End With
    
End Sub

影の設定を変更しない場合は「.Type = msoShadow21」以下の項目は必要ありません。「msoShadow21」で標準スタイルの「オフセット:右下」を指定しています。

影の「角度」と「距離」は「OffsetX」と「OffsetY」で指定する必要があるので、希望の値にするのは困難でしょう。サンプルコードは「角度:45°」と「距離:3pt」になるように設定しています。

Msoshadowtypeクラスの定数

標準スタイルの「オフセット:右下」以外の種類を指定したい場合は、以下の表を参考に入力してください。

標準スタイル定数
オフセット:右下msoShadow21
オフセット:下msoShadow22
オフセット:左下msoShadow23
オフセット:右msoShadow24
オフセット:中央msoShadow25
オフセット:左msoShadow26
オフセット:右上msoShadow27
オフセット:上msoShadow28
オフセット:左下msoShadow29
内側:左上msoShadow30
内側:上msoShadow31
内側:右下msoShadow32
内側:左msoShadow33
内側:中央msoShadow34
内側:右msoShadow35
内側:左下msoShadow36
内側:下msoShadow37
内側:右下msoShadow38
透視投影:左上msoShadow39
透視投影:右上msoShadow40
透視投影:下msoShadow41
透視投影:左下msoShadow42
透視投影:右下msoShadow43

テキストボックス内の選択中の文字列に影を設定するマクロ

選択中のテキストボックスに影を設定、またはテキストボックス内の選択中の文字列に影を設定するマクロです。

Sub SelectedTextShadow()

    '選択したオブジェクトがテキストボックスであることを確認
    If ActiveWindow.Selection.ShapeRange(1).HasTextFrame Then
    
        '影を設定
        With ActiveWindow.Selection.TextRange2.Font.Shadow
            .Type = msoShadow21 '標準スタイル(オフセット:右下)
            .ForeColor.RGB = RGB(0, 0, 0) '色
            .Transparency = 0.6 '透明度
            .Size = 100 'サイズ
            .Blur = 4 'ぼかし
            .OffsetX = 2.1213203436 '角度、距離
            .OffsetY = 2.1213203436 '角度、距離
        End With
    
    End If
End Sub

影の設定を変更しない場合は「.Type = msoShadow21」以下の項目は必要ありません。「msoShadow21」で標準スタイルの「オフセット:右下」を指定しています。

影の「角度」と「距離」は「OffsetX」と「OffsetY」で指定する必要があるので、希望の値にするのは困難でしょう。サンプルコードは「角度:45°」と「距離:3pt」になるように設定しています。

文字の影を非表示にするマクロ

選択中のテキストボックスの影を非表示、またはテキストボックス内の選択中の文字列の影を非表示にするマクロです。

Sub SelectedTextShadowHidden()

    '選択したオブジェクトがテキストボックスであることを確認
    If ActiveWindow.Selection.ShapeRange(1).HasTextFrame Then
    
        '影を非表示にする
        ActiveWindow.Selection.TextRange2.Font.Shadow.Visible = msoFalse
    
    End If
End Sub