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

オブジェクトの代入

Setが必要なことに注意.

Set obj = Object


オブジェクトブラウザ

オブジェクトの簡易辞書みたいなもの.
リボンでは段ボールのやつ.
引数における列挙型の確認はこれで十分.

ヘルプ(人間作成)と違っていたら,こちらを優先した方がいいかも.

アイコンについて:

赤青黄の点:オブジェクト
グレーの手:プロパティ (ver. 2013では青い四角)
飛んでる緑:メソッド
青:オブジェクトの規定メンバ
生ゴミ:モジュール
黄色い四角x2:列挙型
灰色の四角:定数


各クラス,メソッド,プロパティは,オブジェクトブラウザ (ctrl cmd b)で調べられます.

グレーの四角いのはプロパティ.
緑が飛んでるアイコンはメソッド.

いくつかのクラスのプロパティ,メソッドは,グローバルで呼び出せる.


Applicationオブジェクト

開いているパワポ

Application.ActivePresentation

グローバルメンバなので,ActivePresentationのみで呼び出し可能.
読み取り専用.

戻り値

Presentationオブジェクト

ファイルダイアログを開く (ファイル,フォルダ,開く,名前をつけて保存) (macにない)

Application.FileDialog(type)
' 引数は次のように指定するのかも
Application.FileDialog(type:=msoHoge)

type:

以下のうちいずれか,
msoFileDialogFilePicker
msoFileDialogFolderPicker
msoFileDialogOpen
msoFileDialogSaveAs

return:

FileDialogオブジェクト

例: 複数のファイルを選択して開く

Sub ShowFileDialog()

    Dim dlgOpen As FileDialog

    Set dlgOpen = Application.FileDialog(Type:=msoFileDialogOpen)

    With dlgOpen
        .AllowMultiSelect = True
        .Show
    End With

End Sub

アプリケーションで画像を読み込み表示際に,切り替わらない場合はVisibleをFalseにした後に,Trueにすると再表示される.




Presentatoinオブジェクト

https://learn.microsoft.com/en-us/office/vba/api/powerpoint.presentation
グローバルメンバに登録されているので,ここから始まるのが良くある.

ActivePresentation


パワポのファイル名

Presentation.Name


保存先ディレクトリパス

Presentation.Path


パワポファイルのパス

Presentation.FullName
` 以下と等価。 
Presentation.Path & "/" & Presentation.Name


テーマ色

Presentation.ColorSchemes  ' ColorShemeのコレクション
Presentation.ColorShemes(1).Colors(SchemeColor)

SchemeColor As PpColorSchemeIndex:

配色パターンは混在:ppSchemeColorMixed (-2)
配色パターンなし:ppNotSchemeColor (0)
背景:ppBackground (1)
前傾:ppForeground (2)
影:ppShadow (3)
タイトル:ppTitle (4)
塗りつぶし:ppFill (5)
Accent1:pAccent1 (6)
Accent2:ppAccent2 (7)
Accent3:ppAccent3 (8)

retruns:

RGBColorオブジェクト

スライドオブジェクトのコレクション

Presentation.Slides

※ コレクションにはインデックス使える.

スライドの幅・高さ

Presentation.PageSetup.SlideWidth
Presentation.PageSetup.SlideHeight 


上書き保存

Presentation.Save

returns:

None?Null?

例:保存してなかったら保存する

With Application.ActivePresentation

    If Not .Saved And .Path <> "" Then .Save

End With


名前をつけて保存

Presentation.SaveAs(FileName, FileFormat=ppSaveAsDefault, EmbedFonts=msoTriStateMixed)

FileName:

String.保存先.

FileFormat:

PpSaveAsFileType.
保存形式.
AddIn,BMP,Default(デフォ),EMF,ExternalConverter,GIF,JPG,MetaFile,MP4,OpenDocumentPresentation,OpenXMLAddin,OpenXMLPicturePresentation,OpenXMLPresentation,OpenXMLPresentationMacroEnabled,OpenXMLShow,OpenXMLShowMacroEnabled,OpenXMLTemplate,OpenXMLTemplateMacroEnabled,OpenXMLTheme,PDF,PNG,Presentation,RTF,Show,StrictOpenXMLPresentation,Template,TIF,WMV,XMLPresentation,XPS.

EmbedFonts:

TrueTypeフォントを埋め込むかどうか.
msoFalse:埋め込まない
msoTriStateMixed:(デフォ)混在.
msoTrue:TrueTypeフォントを埋め込む.

閉じる

Presentation.Close

作業内容の如何に関わらず閉じる.
保存しておきましょう.

例:保存してから閉じる

With Application.Presentations("pres1.ppt")

    .Saved = True
    .Close

End With


例:開いているパワポを全て閉じる

With Application.Presentations

    For i = .Count To 1 Step -1
        .Item(i).Close
    Next

End With





プレゼンテーションコレクション Presentations

https://learn.microsoft.com/en-us/office/vba/api/powerpoint.presentation
グローバルメンバに登録されてる.

パワポ新規作成

Presentations(WithWindow=msoTrue)

WithWindow:

ウィンドウを表示するか.
MsoTriState.
msoFalse:表示しない
msoTrue:表示する

returns:

Presentation

パワポを開く

Presentations.Open(FileName, ReadOnly=msoFalse, Untitled=msoFalse, WithWindow=msoTrue)

FileName:

String.ファイル名.

ReadOnly:

MsoTriState.書き込み可能,読み取り専用を選ぶ.
msoFalse:(デフォ)書き込み可能.
msoTrue:読み取り専用.

Untitled:

MsoTriState.ファイルのタイトルの設定するか.
msoFalse:(デフォ)開いたパワポのタイトルになる.
msoTrue:タイトルがない状態になる=コピーして開いている状態.

WithWindow:
MsoTriState.ファイルを表示するかどうか
msoFalse:非表示にする.
msoTrue:(デフォ)表示する.

returns:

Presentation




開いているドキュメント DocumentWindow

ActiveWindowはグローバルメンバ。

ウィンドウを最大化する

ActiveWindow.WindowState = ppWindowMaximized


ウィンドウの左端

ActiveWindow.Left

メイン画面の左上が(0, 0)のよう。

表示モードに関するオブジェクト

ActiveWindow.View

スライドの別ページに行ったり、図形ペーストしたり、拡大縮小したりできる。

選択中オブジェクト

ActiveWindow.Selection





表示モードに関するオブジェクト View

クリップボードのペースト

View.Paste


形式を選択してペースト

View.PasteSpecial





選択しているものオブジェクト Selection

コピー・カット・ペースト
削除
選択解除


何を選択しているか

Selection.Type


返却値

PpSelectinType列挙型を返す。
ppSelectionNone (= 0)
ppSelectionShapes (= 2)
ppSelectionSlides (= 1)
ppSelectionText (= 3)

選択中のスライド


選択中の図形など


選択中のテキスト





スライドオブジェクト Slide

幅,高さはPresentatoinオブジェクトから.

プロパティ
名前

Slide.Name

各スライドページには,一つずつ名前が割り当てられている.

戻り値:

String

スライドID

全てのスライドは追加か再配置された時点で,一意のIDが付与される.

Slide.SlideID

戻り値:

Long

スライドIndex

Slide.SlideIndex

スライドの追加,再配置で変わってしまうので注意.

戻り値:

Long

スライド番号

Slide.SlideNumber

スライド番号 = FirstSlideNumber(開始スライド番号) + スライドindex - 1
THEスライド番号.

戻り値:

integer

例:

ActivePresentation.PageSetup.FirstSlideNumber = 10
AcrivePresentation.Slides(2).SlideNumber    ' return 11




レイアウト (タイトル,セクション見出し,等)

Slide.Layout

ppLayout.
代入できるものは以下
ppLayout...
Blank,Chart,ChartAndText,ClipartAndText,ClipArtAndVerticalText,FourObjects,LargeObject,MediaClipAndText,Mixed,Object,ObjectAndText,ObjectOverText,Orgchart,Table,Text,TextAndChart,TextAndClipart,TextAndMediaClip,TextAndObject,TextAndTwoObjects,TextOverObject,Title,TitleOnly,TwoColumnText,TwoObjectsAndText,TwoObjectsOverText,VerticalText,VerticalTitleAndText,VerticalTitleAndTextOverChart
・タイトルスライド:ppLayoutTitle
・タイトルのみ:ppLaytouTitleOnly
・タイトルとコンテンツ:ppLaytoutObject
・セクション見出し:ppLayoutSectionHeader
・白紙:ppLayoutBlank

背景

Slide.Background


戻り値

ShapeRange

背景のスタイル ()

Slide.BackgroundStyle


スライド上の要素

図形,画像,テキスト,タイトル,ヘッダー,フッター,スライド番号,日付と時刻,ノートのスライドイメージ.

Slide.Shapes


戻り値

Shapeオブジェクトのコレクション



スライドを選択

Slide.Select

returns:

Null

スライドの削除

Slide.Delete

returns:

Null

スライドをクリップボードにコピー

Slide.Copy
ActivePresentation.Slides(1).Copy



選択中のスライドのスライド番号

Slidesではなく,Windowオブジェクトから取得できる.

ActiveWindow.Selection.SlideRange.SlideIndex





スライドオブジェクトのコレクション Slides

プロパティ

・Applicaton

スライドの枚数

Slides.Count

戻り値

Long

・Parent

メソッド
スライド追加

Slides.AddSlide(Index, pCustomLayout As CustomLayout)
Slides.Add(Index As Long, Layout As PpSlideLayout)

Addはオブジェクトブラウザで非表示にされている.

Index:

新しく挿入するスライドのインデックス.
あるいは,Indexのスライドの前に挿入される.

pCustomLayout:

スライドのレイアウト.
別のスライドのプロパティを渡すとよさそう.例参照.

Layout:

レイアウトの種類.
PpSlideLayout:
白紙:ppLayoutBlank(12)
グラフ:ppLayoutChart (8)
グラフとテキスト:ppLayoutChartAndText (6)
ClipArt とテキスト:ppLayoutClipArtAndText (10)
クリップ アートと縦書きテキスト:ppLayoutClipArtAndVerticalText (26)
比較:ppLayoutComparison (34)
キャプション付きコンテンツ:ppLayoutContentWithCaption (35)
ユーザー設定:ppLayoutCustom (32)
4 つのオブジェクト:ppLayoutFourObjects (24)
大きなオブジェクト:ppLayoutLargeObject (15)
メディア クリップとテキスト:ppLayoutMediaClipAndText (18)
混在:ppLayoutMixed (-2)
オブジェクト:ppLayoutObject (16)
オブジェクトとテキスト:ppLayoutObjectAndText (14)
オブジェクトと 2 つのオブジェクト:ppLayoutObjectAndTwoObjects (30)
オブジェクト、テキスト:ppLayoutObjectOverText (19)
組織図:ppLayoutOrgchart (7)
キャプション付き画像:ppLayoutPictureWithCaption (36)
セクション ヘッダー:ppLayoutSectionHeader (33)
表:ppLayoutTable (4)
テキスト:ppLayoutText (2)
テキストとグラフ:ppLayoutTextAndChart (5)
テキストと ClipArt (ppLayoutTextAndClipArt (9)
テキストとメディア クリップ:ppLayoutTextAndMediaClip (17)
テキストとオブジェクト:ppLayoutTextAndObject (13)
テキストと 2 つのオブジェクト:ppLayoutTextAndTwoObjects (21)
テキスト、オブジェクト:ppLayoutTextOverObject (20)
タイトル:ppLayoutTitle (1)
タイトルのみ:ppLayoutTitleOnly (11)
2 列のテキスト:ppLayoutTwoColumnText (3)
2 つのオブジェクト:ppLayoutTwoObjects (29)
2 つのオブジェクトとオブジェクト:ppLayoutTwoObjectsAndObject (31)
2 つのオブジェクトとテキスト:ppLayoutTwoObjectsAndText (22)
2 つのオブジェクト、テキスト:ppLayoutTwoObjectsOverText (23)
縦書きテキスト:ppLayoutVerticalText (25)
縦書きタイトルと縦書きテキスト:ppLayoutVerticalTitleAndText (27)
縦書きタイトルと縦書きテキスト、グラフ:ppLayoutVerticalTitleAndTextOverChart (28)

例:同じスライドスタイルでスライドを追加

Sub Add_Slidee() 

    Dim pptLyt As CustomLayout  
    Dim pptSld As Slide 
 
    Set pptLyt = ActivePresentation.Slides(1).CustomLayout 
    Set pptSld = ActivePresentation.Slides.AddSlide(2, pptLyt) 
 
End Sub


・FindBySlideID
・InsertFromFIle
・Item

クリップボードのスライドをペースト

Slides.Paste (index)

index:
このスライドの前に挿入される.
省略すると一番後ろに挿入される.

返却値:

SlideRange

・Range