Home » パワーポイントマクロ・PowerPoint VBAの使い方 » 表・テーブル » 表に斜め罫線を引くPowerPointマクロ

表に斜め罫線を引くPowerPointマクロ

対象:PowerPoint2007, PowerPoint2010, PowerPoint2013

「ppt vba 表 斜め線」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。

表に斜め罫線を引くPowerPoint VBA(Visual Basic for Applications)のコードを探している方による検索です。

「ppt vba 表 斜め線」
という検索だけでは、詳細がわかりませんので、参考になりそうなマクロを、2つご紹介しておきます。

[スポンサードリンク]

先頭のセルに斜め罫線を引くサンプルマクロ

表を選択しておいてから以下のマクロを実行すると、先頭のセル(Excelで言うならA1セルに該当するセル)に、右下下がりの罫線が作成されます。

Sub アクティブな表の先頭セルに斜めの罫線を引く()

 On Error GoTo ERR_HNDL

 With ActiveWindow.Selection.ShapeRange.Table _
  .Cell(1, 1).Borders(ppBorderDiagonalDown)

   .DashStyle = msoLineSolid
   .ForeColor.RGB = RGB(64, 0, 128)
   .Weight = 5
   .Visible = msoTrue

 End With

 Exit Sub

ERR_HNDL:

 MsgBox "表を選択してから実行してください。"

End Sub

PowerPointの表は、オブジェクトの階層がとても深いのが厄介なところです。

DocumentWindowオブジェクトの、Seletionオブジェクトの、ShapeRangeオブジェクトの、Tableオブジェクトの、Cellオブジェクトの、BodersコレクションオブジェクトのデフォルトメンバーであるItemメソッドに定数・ppBorderDiagonalDownを指定すると、
 With ActiveWindow.Selection.ShapeRange.Table _
  .Cell(1, 1).Borders(ppBorderDiagonalDown)
右下下がりの斜め罫線を表すLineFormatオブジェクトが取得できます。

Excel VBAのオブジェクトに慣れている方だと、Bordersコレクションオブジェクトのメンバーである単一オブジェクトがBorderオブジェクトではなく、LineFormatオブジェクトであるのは、ちょっとビックリするかもしれません。

取得したLineFormatオブジェクトの各プロパティを指定しているのが、以下の部分です。
   .DashStyle = msoLineSolid
   .ForeColor.RGB = RGB(64, 0, 128)
   .Weight = 5
   .Visible = msoTrue

プロパティの名前などから、何を設定するものなのかを理解できるでしょう。

斜め罫線を引くサンプルマクロ

以下のマクロを実行すると、アクティブなスライド上にあるすべての表の、左上から右下に斜めの罫線が作成されます。

総当たり戦表・リーグ線表の、左上から右下に斜め線を引くマクロと考えてください。

Sub アクティブスライドの表の左上から右下に罫線を引く()

 Dim shp As Shape
 Dim r As Long ''表の行番号
 Dim c As Long ''表の列番号

 With ActiveWindow.Selection.SlideRange
 For Each shp In .Shapes
 If shp.HasTable Then

  With shp.Table

  For r = 1 To .Rows.Count
   For c = 1 To .Columns.Count

    If r = c Then
    With .Cell(r, c).Borders(ppBorderDiagonalDown)

     .DashStyle = msoLineSolid
     .ForeColor.RGB = RGB(64, 0, 128)
     .Weight = 5
     .Visible = msoTrue

    End With
    End If

   Next c
  Next r

  End With

 End If
 Next shp
 End With

End Sub

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

もし表が存在しているShapeだったら、
 If shp.HasTable Then

その表の、行方向ににループを回して、
  With shp.Table
  For r = 1 To .Rows.Count

更に列方向にもループを回して、
   For c = 1 To .Columns.Count

行番号と列番号が一致したときに、
    If r = c Then

先のマクロと同様に右下下がりの斜め罫線を作成しています。
    With .Cell(r, c).Borders(ppBorderDiagonalDown)
     .DashStyle = msoLineSolid
     .ForeColor.RGB = RGB(64, 0, 128)
     .Weight = 5
     .Visible = msoTrue

[スポンサードリンク]

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » 表・テーブル » 表に斜め罫線を引くPowerPointマクロ

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

検索


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

.