「ppt vba 表 斜め線」
という検索で、このサイト・インストラクターのネタ帳へのアクセスがありました。
表に斜め罫線を引くPowerPoint VBA(Visual Basic for Applications)のコードを探している方による検索です。
「ppt vba 表 斜め線」
という検索だけでは、詳細がわかりませんので、参考になりそうなマクロを、2つご紹介しておきます。
先頭のセルに斜め罫線を引くサンプルマクロ
表を選択しておいてから以下のマクロを実行すると、先頭のセル(Excelで言うならA1セルに該当するセル)に、右下下がりの罫線が作成されます。
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 SubPowerPointの表は、オブジェクトの階層がとても深いのが厄介なところです。
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
プロパティの名前などから、何を設定するものなのかを理解できるでしょう。
斜め罫線を引くサンプルマクロ
以下のマクロを実行すると、アクティブなスライド上にあるすべての表の、左上から右下に斜めの罫線が作成されます。
総当たり戦表・リーグ線表の、左上から右下に斜め線を引くマクロと考えてください。
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
アクティブなスライド上のすべての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マクロ