Home » パワーポイントマクロ・PowerPoint VBAの使い方 » TextFrame・TextRange » 文字数をカウントするPowerPointマクロ

文字数をカウントするPowerPointマクロ

対象:PowerPoint2003, PowerPoint2007, PowerPoint2010, PowerPoint2013

文字数をカウントするパワポマクロ

「パワーポイント 文字数 数える」
「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 & "」です。"

End Sub

上記のマクロを実行すると、アクティブなプレゼンテーションファイルに含まれる文字数がメッセージボックスに表示されます。

全スライドに対するループ処理の中に、個々のスライドに含まれるシェイプに対してループを回し、その中で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 & "」です。"

End Sub

こちらはループを入れ子にする必要はありません。ただし、PowerPointのVBAにはActiveSlide的なプロパティが存在していないので、ActiveWindow.Selection.SlideRangeプロパティでアクティブスライドを取得しています。

関連語句
VBA, Visual Basic for Applications
[スポンサードリンク]

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » TextFrame・TextRange » 文字数をカウントするPowerPointマクロ

「TextFrame・TextRange」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.