Home » パワーポイントマクロ・PowerPoint VBAの使い方 » 表・テーブル » 表・Tableの有無を判定するPowerPointマクロ

表・Tableの有無を判定するPowerPointマクロ

対象:PowerPoint2007, PowerPoint2010, PowerPoint2013, Windows版PowerPoint2016

「powerpoint vba shapes tableの有無を判定する」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

PowerPoint VBA(Visual Basic for Applications)で、表が存在しているかどうかを判定するには、どのようなコードを書けばいいのかを探している方による検索です。

簡単なマクロを2つご紹介しておきます。
 アクティブなスライドで表の有無を判定するマクロと
 アクティブなプレゼンテーションファイルで表の有無を判定するマクロの
2つです。

[スポンサードリンク]

アクティブなスライドで表の有無を判定するサンプルマクロ

以下のマクロを実行したときに、アクティブなスライド上に表があれば、「表が存在しています。」なければ、「表はありません。」というメッセージが表示されます。


Sub 表の有無を判定する_アクティブスライド()

 Dim shp As Shape
 Dim msg As String

 msg = ""
 For Each shp In ActiveWindow.Selection.SlideRange.Shapes
  If shp.HasTable Then
   msg = "表が存在しています。"
   Exit For
  End If
 Next shp
 If msg = "" Then msg = "表はありません。"

 MsgBox msg

End Sub

Shapeに表が存在するかどうかは、HasTableプロパティでわかりますから、アクティブスライド上の全ShapeにFor Each~Nextループを回して、
 For Each shp In ActiveWindow.Selection.SlideRange.Shapes

各Shapeオブジェクトの、HasTableプロパティをチェックしています。
  If shp.HasTable Then

アクティブなプレゼンテーションファイルで表の有無を判定するサンプルマクロ

アクティブなプレゼンテーションファイルに、表が存在するかどうかを判定するなら、以下のようなマクロです。


Sub 表の有無を判定する_アクティブプレゼンテーション()

 Dim sld As Slide
 Dim shp As Shape
 Dim msg As String

 msg = ""
 For Each sld In ActivePresentation.Slides
  For Each shp In sld.Shapes
    If shp.HasTable Then
     msg = msg & sld.SlideNumber & vbCrLf
     Exit For
    End If
  Next shp
 Next sld

 If msg = "" Then
  msg = "表はありません。"
 Else
  msg = "以下のスライドに表が存在します。" & vbCrLf & msg
 End If
 
 MsgBox msg

End Sub

アクティブなプレゼンテーションファイル内の、全SlideにFor Each~Nextループを回して、
 For Each sld In ActivePresentation.Slides

各Slide内で、全Shapeに対するFor Each~Nextループを回し、
  For Each shp In sld.Shapes

先のマクロと同様に、ShapeオブジェクトのHasTableプロパティを調べています。
    If shp.HasTable Then

[スポンサードリンク]

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » 表・テーブル » 表・Tableの有無を判定するPowerPointマクロ

TrackBack:0

TrackBack URL

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » 表・テーブル » 表・Tableの有無を判定するPowerPointマクロ

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

.