Home » パワーポイントマクロ・PowerPoint VBAの使い方 » 表・テーブル » PowerPointのVBAで表の行数・列数を調べる

PowerPointのVBAで表の行数・列数を調べる

対象:PowerPoint2003, PowerPoint2007, PowerPoint2010, PowerPoint2013

PowerPointのVBAで表の行数・列数を調べる

「powerpoint vba tableの列数 行数」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

詳細は不明ですが、PowerPointのVBA(Visual Basic for Applications)で、表の行数・列数を調べるコードを探している方による検索でしょうか。

この検索キーワードだけでは、何を探していたのか詳しいことがわかりませんので、参考になりそうなマクロを、2つご紹介しておきます。

[スポンサードリンク]

アクティブスライド上の表の行数と列数を調べるマクロ

1つ目は、アクティブなスライドに存在する、すべての表の行数・列数を調べるマクロです。

Sub アクティブスライドの表の行数と列数を調べる()  Dim msg As String  Dim shp As Shape

 For Each shp In ActiveWindow.Selection.SlideRange.Shapes
  msg = ""
  With shp
   If .HasTable = msoTrue Then
    msg = msg & "行数:"
    msg = msg & .Table.Rows.Count & vbCrLf
    msg = msg & "列数:"
    msg = msg & .Table.Columns.Count
    MsgBox msg
   End If
  End With
 Next shp
End Sub

表の存在するスライドがアクティブな状態で、上記のマクロを実行すると、表の行数と列数がメッセージボックスに表示されます。

表が複数存在しているスライドがアクティブな状態で実行したときは、表の数だけメッセージボックスが表示されます。

PowerPointの表(Tableオブジェクト)が、どのオブジェクトに所属しているのかが、難点の一つでしょうか。

TableオブジェクトはShapeオブジェクトやShapeRangeオブジェクトのTableプロパティで取得できるので、

PowerPointのVBAで表の行数・列数を調べる

アクティブスライド上の全Shapeに対してループを回して、
 For Each shp In ActiveWindow.Selection.SlideRange.Shapes

個々のShapeのHasTableプロパティを調べて、もしTableがあったのなら、
  With shp
   If .HasTable = msoTrue Then

表の行数と、
    msg = msg & .Table.Rows.Count & vbCrLf

表の列数を取得しています。
    msg = msg & .Table.Columns.Count

選択されている表の行数と列数を調べるマクロ

2つめは表を選択しておいてから、その表の行数・列数を調べるマクロです。


Sub 選択されている表の行数と列数を調べる()
 Dim msg As String

 With ActiveWindow.Selection
  msg = ""
  If .Type = ppSelectionNone _
  Or .Type = ppSelectionSlides Then
   msg = "行数・列数を調べたい、表を選択してください。"
   MsgBox msg
   Exit Sub
  End If

  If .Type = ppSelectionText Then .ShapeRange.Select

  If .ShapeRange.HasTable = msoTrue Then
   msg = msg & "行数:"
   msg = msg & .ShapeRange.Table.Rows.Count & vbCrLf
   msg = msg & "列数:"
   msg = msg & .ShapeRange.Table.Columns.Count
   MsgBox msg
  End If 
 End With
End Sub

何も選択されていないときや、スライドが選択されているときは、メッセージを表示してマクロを終了しています。
  If .Type = ppSelectionNone _
  Or .Type = ppSelectionSlides Then
   msg = "行数・列数を調べたい、表を選択してください。"
   MsgBox msg
   Exit Sub
  End If

図形が選択されているのだけれど、テキスト編集モードになっているときは、ShpaeRangeをSlectしています。
  If .Type = ppSelectionText Then .ShapeRange.Select

もし、そのShapeRangeがTabelを持っていたら、
  If .ShapeRange.HasTable = msoTrue Then

表の行数と、
   msg = msg & .ShapeRange.Table.Rows.Count & vbCrLf

表の列数を取得しています。
   msg = msg & .ShapeRange.Table.Columns.Count

[スポンサードリンク]

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » 表・テーブル » PowerPointのVBAで表の行数・列数を調べる

TrackBack:0

TrackBack URL

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » 表・テーブル » PowerPointのVBAで表の行数・列数を調べる

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

.