オブジェクトの代入
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