「VBA PPT ノートの文字数」
という検索キーワードに気が付きました。
PowerPoint VBAで、ノートに入力されている文字列の文字数を取得するには、どのようなコードを書けばいいのかを探していらしたのでしょう。
ノートの文字数を取得するサンプルマクロ
以下の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を使わなかった場合は、以下のとおりです。
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
- Newer:オブジェクト名がコードに書かれるケース
- Older:COUNTIF関数で昨日のデータだけをカウントする
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » ノート » VBAでノートの文字数を取得する