Home » パワーポイントマクロ・PowerPoint VBAの使い方 » ノート » VBAでノートの文字数を取得する

VBAでノートの文字数を取得する

対象:PowerPoint2010, PowerPoint2013, Windows版PowerPoint2016

「VBA PPT ノートの文字数」
という検索キーワードに気が付きました。

PowerPoint VBAで、ノートに入力されている文字列の文字数を取得するには、どのようなコードを書けばいいのかを探していらしたのでしょう。

[スポンサードリンク]

ノートの文字数を取得するサンプルマクロ

以下のSubプロシージャを実行すると、アクティブなプレゼンテーションの、スライド番号とノートの文字数が、イミディエイトウィンドウに出力されます。

Sub ノートの文字数を取得する()
 Dim sld As Slide
 For Each sld In ActivePresentation.Slides
  Dim shp As Shape
  Set shp = sld.NotesPage.Shapes.Placeholders(2)
  Debug.Print _
    sld.SlideNumber & vbTab & _
    Len(shp.TextFrame.TextRange.Text)
 Next sld
End Sub

サンプルマクロの解説

アクティブなプレゼンテーションに含まれる全スライドに対してFor Each~Nextループを回して、
  For Each sld In ActivePresentation.Slides

ノート部分のプレースホルダーをオブジェクト変数shpに代入します。
   Dim shp As Shape
   Set shp = sld.NotesPage.Shapes.Placeholders(2)
この処理はなくても構わないのですけれど、このあとに登場するLen関数で文字列を取得する行が、あまりに長くなってしまうので入れました。

この「.NotesPage.Shapes.Placeholders(2)」は、ノートを処理するマクロでは必ず登場する定番のオブジェクト式です。

Slide.SlideNumberプロパティで取得したスライド番号と、VBAのLen関数で取得した文字数を、イミディエイトウィンドウに出力しています。
   Debug.Print _
     sld.SlideNumber & vbTab & _
     Len(shp.TextFrame.TextRange.Text)

オブジェクト変数shpを使わない場合

ちなみにオブジェクト変数shpを使わなかった場合は、以下のとおりです。

Sub ノートの文字数を取得する_オブジェクト変数shpなし()
 Dim sld As Slide
 For Each sld In ActivePresentation.Slides
  Debug.Print _
    sld.SlideNumber & vbTab & _
    Len(sld.NotesPage.Shapes.Placeholders(2).TextFrame.TextRange.Text)
 Next sld
End Sub

「Len(sld.NotesPage.Shapes.Placeholders(2).TextFrame.TextRange.Text)」は、さすがにどうかと思います。

最終更新日時:2018-09-14 15:45

[スポンサードリンク]

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » ノート » VBAでノートの文字数を取得する

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

.