画像の代替テキストを一括で削除するPowerPointマクロ
GW直前に、すべり込みで松島水族館に行ってきました。平和で心のこもった良い水族館でした‥最後に行くことができてよかったです。生体やスタッフは新しくオープンする仙台うみの杜水族館に移るとのことで、今からとても楽しみです。
弊社では、Microsoft Office製品を使ったファイルの翻訳案件を扱うことが多くあります。翻訳前後のファイル処理時に大量の単純作業が必要な場合、状況に応じてマクロを使用します。書籍やWeb上の情報を参考にしながらマクロを作るのですが、WordやExcelと比べると、PowerPoint用のVBAは情報が非常に少ない印象を受けます。最近のPowerPointではマクロの記録もできなくなっているので、取っ掛かりを見つけることすら難しく感じます。
そんな貴重な(?)PowerPoint VBAのプログラムを、少しずつご紹介していければと思います。高度なプログラムを組む技術力はないので、簡単なものを‥。
今回は、画像の代替テキストを一括で削除するPowerPointマクロのご紹介です。
pptの画像に代替テキストが設定されている場合、そのpptファイルをpdf形式に変換してマウスオーバーすると、代替テキストがツールチップとして表示されます。
これはアクセシビリティのための機能ということですが、画像のファイルパスなど、アクセシビリティの観点から考えても不要な情報が設定されている場合があります。
pdfでツールチップを表示しない方法は2つあります
・pdf形式で保存するときに、アクセシビリティ用のドキュメント構造タグを対象外にする
・画像の代替テキストを削除する
2つ目の方法を採るときに使えるプログラムです。
Sub DeleteAltText()
Dim slSlide As Slide
Dim shShape As Shape
Dim x As Long
For Each slSlide In ActivePresentation.Slides
slSlide.Select
For Each shShape In slSlide.Shapes
shShape.Title = ""
shShape.AlternativeText = ""
With shShape
Select Case .Type
''グループ化されたオブジェクトの処理
Case Is = msoGroup
For x = 1 To shShape.GroupItems.Count
shShape.Title = ""
shShape.GroupItems(x).AlternativeText = ""
Next
End Select
End With
Next shShape
Next slSlide
MsgBox ("画像の代替テキストを削除しました")
End Sub
PowerPointではオブジェクトを扱うことが多いので、グループ化されたオブジェクトに対する処理はほぼ必須です。
----------お知らせ----------
株式会社シーブレインでは、フリーランス翻訳者を募集しています。
リンク先に記載されている説明をお読みいただき、要項に従ってご応募ください。
みなさまからのチャレンジをお待ちしております!