PPTマクロ(6)、PPTマクロでつくったもの2
PPTマクロ(5)、PPTマクロでつくったもの1
PPTマクロ(4)、マクロで四角形や楕円などを描く
PPTマクロ(3)、マクロで直線を描く
PPTマクロ(2)、マクロを有効化する
PPTマクロ(1)、マクロ作成の動機
PPTマクロ(5)、PPTマクロでつくったもの1
PPTマクロ(4)、マクロで四角形や楕円などを描く
PPTマクロ(3)、マクロで直線を描く
PPTマクロ(2)、マクロを有効化する
PPTマクロ(1)、マクロ作成の動機
PPTマクロ(3)、マクロで直線を描く
パワーポイントPPTのマクロ作成においてつまずくと、その解決に半日以上かかることがある。私だけかと思っていたら、そうではない。多くの人が、たいしたことはないコマンドを見つけるのに、多くの時間を割いているようである。これはPPTマクロの情報源が少ないことによる。
そこで、これからは例題を列挙していく。
その前に、PPTスライド上の位置を決める数値、原点・中心点などを確認しておく。
下図にPPTディフォールトの場合を示す。
左上が原点(0,0)である。右下が(720,540)である。中心は(360,270)となる。数字の単位はpt(ポイント)で、1pt=1/72インチ=25.4/72mm=0.3527777・・mmである。幅1ptx720=25.4cm、高さ1pt x 540=19.05cmがパワーポイントのディフォールト値でA4サイズより小さい。パワーポイントのサイズは変更可能なのでサイズ変更した場合は、中心値と右下値も変わることを認識しておく必要がある。
先ず、PPTのマクロを使って、左上の原点から右下まで、赤色で線を引いてみよう。
そのマクロを以下で示す。
Sub Line()
ActivePresentation.Slides(1).Shapes.AddLine(0, 0, 720, 540). _
Line.ForeColor.RGB = RGB(255, 0, 0)
End Sub
マクロ名をLineとして上記4行をPPTマクロのエディターにコピーして実行させると、左上から右下に赤色の線を描いてくれる。
以下、このマクロを説明していく。
Sub マクロ名()
End Sub
はマクロの基本である。マクロ名も変数もひらがな、カタカナ、漢字が一応使えるが、そのような例はほとんどみかけない。多分エラーがでるケースがあるからであろう。Sub マクロ名()とEnd Subの間にマクロを記述していく。原点と右下をつなぐマクロ
ActivePresentation.Slides(1).Shapes.AddLine(0, 0, 720, 540). _
.Line.ForeColor.RGB =RGB(255, 0, 0)
は、1行のコマンドである。上記1行目最後のスペースとアンダーバーが、継続行であることを示している。
これを翻訳すると、以下のようになる。
ActivePresentation 現在のプレゼンテーションの
.Slides(1) 1枚目のスライドに
.Shapes 図形として
.AddLine(0, 0, 720, 540) (0,0),(720,540)間に線を引く
.Line 線の
.ForeColor.RGB = 前景色は
RGB(255, 0, 0) R(赤):G(緑):B(青)=255:0:0 である。(注)
通常、線を引くコマンドを1行で書かない。
1行で書いたオリジナル;
Sub Line()
ActivePresentation.Slides(1).Shapes.AddLine(0, 0, 720, 540). _
Line.ForeColor.RGB = RGB(255, 0, 0)
End Sub
最初の変更:
Sub Line()
Set myDocument= ActivePresentation.Slides(1)
myDocument.Shapes.AddLine(0, 0, 720, 540). _
Line.ForeColor.RGB = RGB(255, 0, 0)
End Sub
ActivePresentation.Slides(1)は何度も使う可能性があることから、これをmyDocumentとして以降はActivePresentation.Slides(1)の代わりにmyDocumentを使う。myDocumentでなく別の単語を使ってもかまわない。
次の変更:
Sub Line()
Set myDocument= ActivePresentation.Slides(1)
with myDocument.Shapes.AddLine(0, 0, 720, 540).Line
.ForeColor.RGB = RGB(255, 0, 0)
End with
End Sub
線をここでは赤色にすることだけを指定したが、線幅を指定したり、点線など線の種類を指定する場合が生じる。これら複数の指定を指定する場合、 myDocument.Shapes.AddLine(0, 0, 720, 540).Line まで共通でそれ以降いろんなものを付け足すことになる。このようなとき
With
End With
を使用する。
Sub Line()
Set myDocument= ActivePresentation.Slides(1)
with myDocument.Shapes.AddLine(0, 0, 720, 540).Line
.ForeColor.RGB = RGB(255, 0, 0) ‘線の色 赤
.Weight=2 ‘線の幅 2ポイント
End with
End Sub
ここでは、線幅指定を追加した。アポストフィ ‘ は、それ以降は無効を示す。このため、上記のようにコメントを追加することができる。日本文字のアポストフィ‘もOK。
一つのマクロ内で線は1本のみでなく、何本も引く場合が多い、このとき座標に変数を使う必要がある。座標を変数にするとともにDimを使って変数宣言しておくことが勧められている。変数宣言しなければならないケースと特に指定しなくてもよいケースがあるが、エラーを少なくするため、常に変数指定するくせをつけておいたほうがよい。
結果的に以下のようになる。
Sub Line()
Dim X1 As Integer, Y1 As Integer ‘X1,Y1変数(整数)宣言
Dim X2 As Integer, Y2 As Integer ‘X2,Y2 変数(整数)宣言
X1=0
Y1=0 ‘X1,Y1 線引きの始点
X2=720
Y2=540 ‘X2,Y2 線引きの終点
Set myDocument= ActivePresentation.Slides(1)
with myDocument.Shapes.AddLine(X1, Y1, X2, Y2).Line
.ForeColor.RGB = RGB(255, 0, 0) ‘線の色 赤
.Weight=2 ‘線の幅 2ポイント
End with
End Sub
(注)
RGB(0,0,0)は、黒を示し、RGB(255,255,255)は白を示す。RGBそれぞれの最大値は255で、色の組み合わせは256の3乗で約千七百万色となる。
(追記)
今回は、線を引くというコマンド例であったが、全てのコマンドにオブジェクト(対象)、メソッド(実行[方法])、プロパティ(性質)が含まれている。
ActivePresentation.Slides(1).Shapes「現プレゼンテーションの1枚目のスライドにおける図形」がオブジェクト(対象)であり、
AddLine(0, 0, 720, 540)「線を引く」がメソッド(実行)であり、
Line .ForeColor.RGB = RGB(255, 0, 0)「赤の線」がプロパティ(性質)である。
もし、長方形を書きたいと思えば、
「PowerPoint Object Model Reference (英語)」
でShapesというオブジェクトの中に見つけることができる。
(つづく)
その他、シリーズも書いています。 ブログ「dousube」検索画面より検索下さい。
0 件のコメント:
コメントを投稿