Hatena::ブログ(Diary)

yuri_donovicの日記 このページをアンテナに追加 RSSフィード

この日記のはてなブックマーク数

2017-07-09

Powerpoint 2013 オートシェイプの円弧

| 20:17 | Powerpoint 2013 オートシェイプの円弧を含むブックマーク Powerpoint 2013 オートシェイプの円弧のブックマークコメント

オートシェイプ AutoShape の円弧は、msoShapeArc と言う。

f:id:yuri_donovic:20170709200149p:image

円弧の角度を数値で調整するサンプルマクロ

Sub 円弧の調整()

'円弧 msoShapeArc の調整パラメータは2つ。
'角度(0-360)で指定する。中央右端が0。
'Adjustments.Item(1)は、開始点。デフォルトは270。
'Adjustments.Item(2)は、終了点。デフォルトは360。

'円弧 msoShapeArc の調整パラメータの数を調べる
'MsgBox ActivePresentation.Slides(1).Shapes.AddShape(msoShapeArc, 100, 100, 100, 100).Adjustments.Count


'任意の大きさの円弧を描く。パラメータは6つ。left, top, width, height, beginArc, endArc
'式.AddShape(Type, Left, Top, Width, Height)

'InputBox(prompt[, title][, default][, xpos][, ypos][, helpfile, context]) VBAのinput関数
'入力値はpt(0.353mm)で。cmで入れたいときは、入力値をApplication.CentimetersToPoints()で換算する。
'例:cm単位で入力したhを、h = Application.CentimetersToPoints(h) などとしてpt単位に換算する。

L = InputBox("図形領域の左端の位置(デフォルトは0pt)", , "0")
T = InputBox("図形領域の上端の位置(デフォルトは0pt)", , "0")
W = InputBox("図形領域の横幅(デフォルトは100pt)", , "100")
H = InputBox("図形領域の高さ(デフォルトは100pt)", , "100")
beginArc = InputBox("円弧の開始点の角度(デフォルトは0°)", , "0")
endArc = InputBox("円弧の終了点の角度(デフォルトは360°)", , "360")

Set arc = ActivePresentation.Slides(ActiveWindow.Selection.SlideRange.SlideIndex).Shapes.AddShape(msoShapeArc, L, T, W, H)
arc.Adjustments.Item(1) = beginArc
arc.Adjustments.Item(2) = endArc

End Sub

オートシェイプの細かい調整方法については、公式もかなり投げやりである。

Adjustments オブジェクト (PowerPoint)

この文書はかなり良い解説なのだが……。

調整可能なオブジェクトはそれぞれ調整方法が個々で異なるため、特定の図形の調整方法を調べるには、変更したい図形をマウスで作成し、マクロ記録で調整を記録したコードについて調べることをお勧めします。

というふうに、詳細なヘルプ文書がない。自分で調べてねというスタンスである。

しかし、Powerpoint2013では「マクロの記録」機能は存在しないのである。

要するに、調整パラメータは自力で探す必要がある。パラメータの数は最大で8個。

そのパラメータの意味や型、値の許容範囲なども自分で調べないといけない。



参考文献

MSDNから

Shape オブジェクト (PowerPoint) →メソッドプロパティの一覧

MsoAutoShapeType 列挙 (Office) →オートシェイプの一覧

Shapes.AddShape メソッド (PowerPoint)

他のサイトから

現在編集中のスライド番号を取得するPowerPoint VBAのコード:パワーポイントマクロ・PowerPoint VBAの使い方-Slide・スライド

トラックバック - http://d.hatena.ne.jp/yuri_donovic/20170709/1499599054