Home » パワーポイントマクロ・PowerPoint VBAの使い方 » 表・テーブル » PowerPoint VBAでTableのRangeは??

PowerPoint VBAでTableのRangeは??

動作検証バージョン:Windows版PowerPoint(バージョン1907 ビルド11901.20218)

「VBA パワーポイント table.range」
という検索キーワードに気が付きました。

PowerPoint VBAの表でも、セルを表すオブジェクトはRangeだと誤解している、Excel VBAの経験がある方による検索でしょう。

PowerPoint VBAにはRangeという名前のメソッドは存在しますけれど、Rangeオブジェクトは存在しません。PowerPoint VBAで表のセルを表すオブジェクトはCellオブジェクトです。

そして、PowerPoint VBAで表のセルを表すCellは、Excel VBAでセルを表すRangeとは随分と性質が異なるオブジェクトです。

[スポンサードリンク]

セルの文字列を取得する

アクティブなプレゼンテーションの先頭シートのコンテンツプレースホルダー(2つ目の図形)に表を作成して、1行1列目のセルに文字列を入力して、以下のSubプロシージャを実行してみてください。

Sub セルの文字列を取得する()
 Dim cell_1x1 As Cell
 Set cell_1x1 = ActivePresentation.Slides(1).Shapes(2).Table.Cell(1, 1)
 MsgBox cell_1x1.Shape.TextFrame.TextRange.Text
End Sub

PowerPoint VBAで表のセルを操作するには、最低でもこのSubプロシージャを理解する必要があります。

Table内のオブジェクト構造

既にご紹介しているとおりPowerPoint VBAで表を表すTableオブジェクトは、
   Presentation
    └ Slide
      └ Shape
        └ Table
と階層をたどって取得します。

で、セルを表すCellオブジェクトは、TableオブジェクトのCellメソッドで取得します。Excel VBAに慣れている方だとCellsと誤解しがちですがCellです。

上記のプロシージャでは、
  Set cell_1x1 = ActivePresentation.Slides(1).Shapes(2).Table.Cell(1, 1)
が、1行目1列目のセルを表すCellオブジェクトを取得しているコードです。

そして、Cellオブジェクトの中には、PowerPoint VBAを活用している方ならおなじみの、Shapeオブジェクトが更に存在しています。ですからセルの文字列は、Cell内のShapeから、TextFrame-TextRange-Textと階層をたどって取得できます。
  MsgBox cell_1x1.Shape.TextFrame.TextRange.Text

最終更新日時:2019-08-21 10:17

[スポンサードリンク]

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » 表・テーブル » PowerPoint VBAでTableのRangeは??

「表・テーブル」の記事一覧

検索


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

.