フォント 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"