「パワーポイント 文字数 数える」
「PowerPoint 文字数カウント」
といった検索で、このサイト・インストラクターのネタ帳へのアクセスが時折あります。
PowerPointで文字数をカウントする方法を探している方による検索です。
Wordの場合、ショートカットキー[Ctrl]+[Shift]+[G]などから文字数のカウントを行うことができます。
しかしPowerPointには文字数を数えるような機能は存在していません。
そのためのマクロをご紹介しておいましょう。
Sub アクティブファイルの文字数をカウントする()
Dim sld As Slide
Dim shp As Shape
Dim cnt As Long
cnt = 0
'アクティブファイルの全スライドに対しループ処理
For Each sld In ActivePresentation.Slides
'それぞれのスライドの全シェイプに対しループ処理
For Each shp In sld.Shapes
'シェイプがTextFrameを持っているときだけ処理実行
If shp.HasTextFrame Then
cnt = cnt + Len(shp.TextFrame.TextRange.Text)
End If
Next shp
Next sld
MsgBox "アクティブなファイルの文字数は「" & cnt & "」です。"
上記のマクロを実行すると、アクティブなプレゼンテーションファイルに含まれる文字数がメッセージボックスに表示されます。
全スライドに対するループ処理の中に、個々のスライドに含まれるシェイプに対してループを回し、その中でLen関数を使って文字数を加算しています。
プレゼンテーションファイル全体に対する文字数ではなく、アクティブなスライドの文字数だけカウントしたいということもあるでしょう。
Sub アクティブスライドの文字数をカウントする()
Dim shp As Shape
Dim cnt As Long
cnt = 0
'アクティブなスライドの全シェイプに対しループ処理
For Each shp In ActiveWindow.Selection.SlideRange.Shapes
'シェイプがTextFrameを持っているときだけ処理実行
If shp.HasTextFrame Then
cnt = cnt + Len(shp.TextFrame.TextRange.Text)
End If
Next shp
MsgBox "アクティブなスライドの文字数は「" & cnt & "」です。"
こちらはループを入れ子にする必要はありません。ただし、PowerPointのVBAにはActiveSlide的なプロパティが存在していないので、ActiveWindow.Selection.SlideRangeプロパティでアクティブスライドを取得しています。
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » TextFrame・TextRange » 文字数をカウントするPowerPointマクロ