PowerPoint VBAを使い、透過用の四角形を選択中の画像と同じサイズで作るマクロをご紹介します。
PowerPointで画像を透過させるためには、四角形の中に画像を挿入する必要があります。その一連の操作を自動で行えるマクロです。
この記事の目次
透過用の四角形を作成するマクロ
コード
Sub 透過用の四角形を作成() Dim msg As String Dim x, y, w, h, r As Single Dim n As Long Dim shp As Shape With ActiveWindow.Selection 'オブジェクトが選択されていない場合はマクロ終了 If .Type = ppSelectionNone _ Or .Type = ppSelectionSlides Then msg = "オブジェクトを選択してください。" MsgBox msg Exit Sub End If With .ShapeRange '選択画像のプロパティを取得 x = .Top y = .Left w = .Width h = .Height r = .Rotation '回転をリセット .Rotation = 0 End With '選択画像をカット .Cut End With '選択中のスライド番号を取得 n = ActiveWindow.Selection.SlideRange.SlideIndex With ActivePresentation '選択画像と同じサイズの四角形を作成 Set shp = .Slides(n).Shapes.AddShape( _ Type:=msoShapeRectangle, _ Left:=y, _ Top:=x, _ Width:=w, _ Height:=h) '四角形の色 shp.Fill.ForeColor.RGB = RGB(0, 0, 0) '線なし shp.Line.Visible = msoFalse '回転 shp.Rotation = r 'テクスチャで塗りつぶす shp.Fill.PresetTextured 1 '透明度 shp.Fill.Transparency = 0.5 '図形を選択 shp.Select 'クリップボードからの画像の挿入は手動で行う End With End Sub
実行結果
透過したい画像を用意します。今回は木漏れ日の画像を透過させます。
画像を選択してマクロを実行すると、画像と同じサイズの四角形が画像と同じ位置に作成されます。
四角形の塗りを「塗りつぶし(図またはテクスチャ)」の「透明度:50%」に設定しているので、後は画像を挿入するだけでOKです。
同時に選択していた画像のカットもしているので、クリップボードに保存されている状態です。
図形へのクリップボードからの画像の挿入はマクロでは実装できないので、ここからは手動で行います。(完全自動処理にできないのが残念です。)
四角形を選択した状態で、「図形の書式設定」ウィンドウ →「図形のオプション」→「塗りつぶしと線」→「塗りつぶし」→「塗りつぶし(図またはテクスチャ)」→「画像ソース」の「クリップボード」をクリックします。
四角形の中に透過された状態で画像が挿入されました。画像と同じサイズの四角形なので縦横比も保たれます。
透明度の設定は「shp.Fill.Transparency = 0.5」の値でお好みに変更してください。
まとめ
今回のマクロは、画像を透過するだけなのに操作の手順が多すぎると思い作成しました。もっと楽に透過したいということでマクロの登場です。
「透過用の四角形を作成するマクロ」を使えば、画像を透過させるために行う
- 画像と同じサイズの四角形を作成 →
- 画像をカット →
- 四角形の塗りを「塗りつぶし(図またはテクスチャ)」に変更 →
- クリップボードから画像を挿入 →
- 透明度の調整
の一連の操作が、「クリップボードから画像を挿入」だけで済むようになりました。
何度も繰り返す一連の操作は、マクロにして一瞬で終わらせるのが効率的です。