パワポvbオブジェクト(その3)


フォント Font

フォント名

Font.Name


英数字用フォント

Font.NameAscii


日本語用フォント

Font.NameFarEast


スタイル(太字,斜字)

Font.Bold
Font.Italic


サイズ

Font.Size


下線

Font.Underline


Font.Color





線の書式設定 LineFormat

https://learn.microsoft.com/ja-jp/office/vba/api/powerpoint.lineformat
shape.Lineで取得できる。
Application
BackColor
BeginArrowhead
Length
BeginArrowhead
Style
BeginArrowheadWidthCreatorDashStyleEndArrowheadLengthEndArrowheadStyleEndArrowheadWidthForeColorInsetPenParentPatternスタイルTransparencyVisibleWeight

塗りつぶしの書式設定オブジェクト FillFormat

https://learn.microsoft.com/en-us/office/vba/api/powerpoint.fillformat (2022年9月)

塗りつぶしなし

FillFormat.Visible

戻り値

塗りつぶしなしの場合:msoFalse
塗りつぶされてる場合:msoTrue

透明度

FillFormat.Transparency

単色の塗りつぶしでしか使えない.
グラデーションや図には適用されない.

戻り値

Single

背景と同じにする

FillFormat.Background


単一色にする

FillFormat.Solid


FillFormat.ForeColor

戻り値

ColorFormatオブジェクト。


グラデーションにする

FillFormat.OneColorGradient(style, variant, degree) 
FillFormat.TwoColorGradient(style, variant)

style

MsoGradientStyle列挙型
上→下
msoGradientHorizontal (= 1)
左→右
msoGradientVertical (= 2)
左上→右下
msoGradientDiagonalUp (= 3)
右上→左下
msoGradientDiagonalDown (= 4)
左上隅→他の3つの隅
msoGradientFromCorner (= 5)
中心→外側(種類:四角)
msoGradientFromCenter (= 7)
タイトル→外部(使用方法不明)
msoGradientFromTitle (= 6)
混在グラデーション(使用方法不明)
msoGradientMixed (= -2)

varient: Long

OneColorGradientの場合のみを記載する。以下の向きになる。グレーがグラデーション適用前の図形の色。






degree: Single

明るさの設定。0.0 (暗 = 黒)から1.0 (明 = 白)の値。
TwoColorGradientでは設定できない。
styleの項目で説明している、矢印の後者の方の明るさ。

グラデーションの角度

FillFormat.GradientAngle

縦棒グラフにも使えるみたい。

戻り値

single

グラデーションの色の種類

FillFormat.GradientColorType

戻り値


グラデーションの明るさ

FillFormat.GradientDegree

取得のみ。設定する場合はOneColorGradientメソッドを使用する。

戻り値

Single

グラデーションの分岐点

FillFormat.GradientStops

読み取り専用。

戻り値

GradientStopsコレクション



グラデーションの分岐点コレクション GradientStops

https://learn.microsoft.com/ja-jp/office/vba/api/office.gradientstops

削除する

GradientStops.Delete([index=-1])

2つより少なくはできない。

OneColorGradientメソッドで追加した場合、
元から追加する前の色の分岐点(0 %)のindex → 1
新しく追加される色(白)の分岐点のindex → 2
以降、パワポで図形の書式設定で追加されたものは、1が割り当てられる。

-1で最大インデックスのものが削除される。

追加する

GradientStops.Insert(rgb, pos[, transparency, index])
GradientStops.Insert(rgb, pos[, transparency, index, Brightness])


rgb

RGB(0, 0, 255)のように指定する。
RGB関数は、上位bitからRGBの順につなげた3 byteの10進数を返却するので、CLng("&H" & "ffffff")のようにすれば16進数で指定できる。
テーマカラーを使用する場合は。。。?

pos: Single

[0, 1]の範囲で指定する。割合を指定する。

index

指定しない場合は、一番大きなインデックスが振られる。

brightness

明るさ。

分岐点の数

GradientStops.Count





グラデーションの分岐点 GradientStop

https://learn.microsoft.com/ja-jp/office/vba/api/office.gradientstop

GradientStop.Color

読み取り専用。

戻り値

ColorFormat

位置

GradientStop.Postion

戻り値

Single
[0.0, 1.0]の範囲の割合。


透明度

GradientStop.Transparency

戻り値

Single
[0.0, 1.0]の範囲の値。0:不透明。1:透明。

図形の頂点のコレクション ShpaeNodes

https://learn.microsoft.com/en-us/office/vba/api/powerpoint.shapenodes
Shape.Nodesで取得可能。

頂点削除
頂点追加

ShapeNodes.Insert(Index, SegmentType, EditingType, x1, y1, x2, y2, x3, y3)


Index As Long:

この番号の頂点の後に追加される

SegmentType As MsoSegmentType:

msoSegmentCurve
msoSegmentLine

EditingType As MsoEditingType:

msoEditingAuto
msoEditingCorner

x1, y1, x2, y2, x3, y3 As Single:

回転している場合,回転角0の状態の位置のものが追加され,その後回転が適用される.
EditingTypeがmsoEditingAuto の場合:
x1, y1のみ必須.新しい頂点ができる.
msoEditingCorner の場合:
x1, y1は必須.x2, y2, x3, y3は指定出来ない.

図形の頂点オブジェクト shapeNode

種類

ShapeNode.EditingType

読み取り専用

returns:

MsoEditingType
msoEditingAuto
msoEditingCorner
msoEditingSmooth
msoEditingSymmetric

座標

ShapeNode.Points

読み取り専用.フリーフォーム以外の場合は,初期で定義されてないみたい.
一般的な図形(フリーフォーム以外)の頂点座標をこれで取得は無理。
一度頂点を追加・削除するなどして、フリーフォームに変換してから座標を取得する。
オブジェクトが必要ですエラーが表示される
動かすには,ShapeNodes.SetPositionメソッドを使う.

returns:

Variant
1基底,1x2配列
Points(1,1), Point(1,2)として入る.

例:座標を動かす

With ActivePresentation.Slides(1).Shapes(3).Nodes
    pointsArray = .Item(2).Points
    currXvalue = pointsArray(1, 1)
    currYvalue = pointsArray(1, 2)
    .SetPosition Index:=2, X1:=currXvalue + 200, Y1:=currYvalue + 300
End With


セグメントが直線か曲線か

ShapeNode.SegmentType

読み取り専用.

returns:

MsoSegmentType
msoSegmentCurve
msoSegmentLine




影の書式オブジェクト ShadowFormat

https://learn.microsoft.com/en-us/office/vba/api/powerpoint.shadowformat
Shape.Shadowで取得できる。



Blur
Creator
ForeColor
Obscured
OffsetX
OffsetY
RotateWithShape
Size

内側・外側

ShadowFormat.Style


msoShadowStyleInnerShadow (= 1)
Specifies the inner shadow effect.

msoShadowStyleMixed (= -2)
Specifies a combination of inner and outer shadow effects.

msoShadowStyleOuterShadow (= 2)
Specifies the outer shadow effect.

透明度

ShadowFormat.Transparency


戻り値

Single

Type
Visible


IncrementOffsetX
IncrementOffsetY



色のオブジェクト ColorFormat

https://learn.microsoft.com/en-us/office/vba/api/powerpoint.colorformat(2022年9月)

テーマカラー

ColorFormat.ObjectColor

戻り値

MsoThemeColorIndex:
テーマの色を指定しない
msoNotThemeColor (= 0)
濃色 1
msoThemeColorDark1 (= 1)
淡色 1
msoThemeColorLight1 (= 2)
濃色 2
msoThemeColorDark2 (= 3)
淡色 2
msoThemeColorLight2 (= 4)
アクセント 1
msoThemeColorAccent1 (= 5)
アクセント 2
msoThemeColorAccent2 (= 6)
アクセント 3
msoThemeColorAccent3 (= 7)
アクセント 4
msoThemeColorAccent4 (= 8)
アクセント 5
msoThemeColorAccent5 (= 9)
アクセント 6
msoThemeColorAccent6 (= 10)
ハイパーリンク
msoThemeColorHyperlink (= 11)
クリックされたハイパーリンク
msoThemeColorFollowedHyperlink (= 12)
テキスト1
msoThemeColorText1 (= 13)
背景 1
msoThemeColorBackground1 (= 14)
テキスト2
msoThemeColorText2 (= 15)
背景 2
msoThemeColorBackground2 (= 16)
テーマの色の組み合わせ
msoThemeColorMixed (= -2)

各オブジェクトが持つColorFormat.ObjectColorに各種値を入力していやると色を設定できる。

例:図形を塗りつぶす

ActiveWindow.Selection.ShapeRange(1).Fill.ForeColor.ObjectThemeColor = msoThemeDark1


明るさ

ColorFormat.Brightness

returns:

Single
0.0(暗い)から1.0(明るい)の範囲.

RGBで設定

ColorFormat.RGB

returns:

Long
設定にはRGB関数を使う.

例:RGBで赤に設定

ActiveWindow.Slides(1).Shapes(1).Fill.ForeColor.RGB = RGB(255, 0, 0)


色合い,陰影

ColorFormat.TintAndShade






段落書式オブジェクト ParagraphFormat

配置(左/中央/右揃え等)

ParagraphFormat.Alignment


段落の間隔

ParagraphFormat.SpaceBefore
ParagraphFormat.SpaceAfter


行間

ParagraphFormat.SpaceWithin






コネクタの書式設定オブジェクト ConnectorFormat

接続点は反時計回りに番号が振られる.
フリーフォームなどの図形では,各頂点に振られる.この場合は頂点番号がある?
Shape.ConnectorFormatで得られる。
   

接続する

ConnectorFormat.BeginConnect(ConnectedShape, ConnectionSite)
ConnectorFormat.EndConnect(ConnectedShape, ConnectionSite)

自分を、別の図形に接続する。
line.ConnectorFormat.BeginConnect shp, 2の形。」

ConnectedShape As Shape:

接続する図形,同じShapesコレクションにないとだめ.→同スライドにあれということだと思う.

ConnectionSite As Long:

接続点の番号。
相手(引数に渡す図形)の接続点。

接続後,最短経路を検索する場合は,Shape.RerouteConnectionsメソッドを使用する.


コネクタが接続されているか

ConnectorFormat.BeginConnected
ConnectorFormat.EndConnected

returns As MsoTriState:

つながってる:msoTrue
つながってない:msoFalse

コネクタに接続されている図形

ConnectorFormat.BeginConnectedShape
ConnectorFormat.EndConnectedShape

returns:

Shape
接続されていない場合エラーを生じる.

コネクタが接続している接続点の番号

ConnectorFormat.BeginConnectionSite
ConnectorFormat.EndConnectionSite

returns:

Long
接続されていない場合エラーを生じる.

コネクタの種類の設定

ConnectorFormat.Type

returns:

MsoConnectorType:
msoConnectorCurve
msoConnectorElbow
msoConnectorStraight
msoConnectorTypeMixed




表のオブジェクト Table

https://./en-us/office/vba/api/powerpoint.table(2022年9月)
Cellプロパティの下にShapeオブジェクトがある.

Cellの取得

Table.Cell(row, column)

1基底。

行数/列数

Table.Rows.Conut
Table.Cols.Count

Rows, ColsはRow, Columnのコレクション.

行・列を追加する

Table.Rows.Add(BeforeColumn=-1)
Table.Cols.Add(BeforeColumn=-1)

BeforeColumn:

この列の前に新しい行・列が挿入される.
-1だと一番最後.




画像の書式オブジェクト PictureFormat

プロパティ
トリミング幅・高さ

PictureFormat.Crop.ShapeWidth
PictureFormat.Crop.ShapeHeight

return:

Single.






パワポ以外のOfficeアプリを参照する CreateObject関数

文字列を引数に渡す.

例:エクセルを開く

Dim ExcelSheet As Object
On Error Go To Error_excl
  With CreateObejct("Excel.Sheet")
    .Visible = True
    With .Workbook.Add
    End With
  End With
Exit Sub

Error_excl:
  Select Case Err.Number
    Case 429
      MsgBox "起動できず"
    Case Else
      MsgBox Err.Description & cbCrLf & Err.Number
  End Select
  Err.Clear
End Sub





タブに関するオブジェクトたち IRibbonUI

指定したタブをアクティブにする

IRibbonUI.ActivateTab("ControlID")

ControlID As String:

アクティブにしたいタブのID.

idMsoで定義されるコマンドを実行する CommandBars

https://learn.microsoft.com/ja-jp/office/vba/api/office.commandbar
マクロでidMsoで定義されるコマンドを実行するには次のようにする。

CommandBars.ExecuteMso "Copy"