さて、ワードやエクセルにはファイルを開いたときに自動実行する
Auto_Open()マクロがありますが、パワーポイントは見当たりません。
何か方法はないものでしょうか?よろしくお願いします。
なお、この質問は「かずさん」の01/08/19のものと同じです。
バージョンの情報がないのでフォローに困りますね。
PowerPoint97:
Auto_Open、Auto_Close マクロはアドインファイルでのみ有効。
イベントクラスは作成できない。
故に、Auto_Open マクロを通常ファイルで有効にできない。
あきらめて下さい。
PowerPoint2000:
Auto_Open、AutoClose マクロはアドインファイルでのみ有効。
しかし、イベントクラスが作成でき、Excel の Worksheet
イベントのような各種イベントを利用可能。
イベントクラスを有効にするアドインファイルを作成し、
PowerPoint 起動時に読み込まれるように設定する。
PresentationOpen イベントで、開いた通常のファイルに
Auto_Open マクロがあるか調べて、それを実行するよう
にアドインファイルにコーディングしておけば、Auto_Open
マクロを通常ファイルで有効にできる。
アドインファイルのクラスモジュールのコード例
(モジュール名:EventClass)
Public WithEvents App As Application
Private Sub App_PresentationOpen(ByVal Pres As Presentation)
Const ProcName As String = "Auto_Open"
If CheckProc(ProcName) = True Then Application.Run Pres.Name & "!" & ProcName
End Sub
Private Function CheckProc(ProcName As String) As Boolean
Dim NL As Long
Dim VBC As VBComponent
CheckProc = False
For Each VBC In ActivePresentation.VBProject.VBComponents
If VBC.Type = vbext_ct_StdModule Then
With VBC.CodeModule
NL = .CountOfLines
If .Find("Sub " & ProcName & "()", 1, 1, NL, 1) Then CheckProc = True
End With
End If
Next VBC
Set VBC = Nothing
End Function
アドインファイルの標準モジュールのコード例
(モジュール名:任意)
Dim Self As New EventClass
Sub Auto_Open()
Set Self.App = PowerPoint.Application
End Sub
追加する参照設定:Microsoft Visual Basic for Applications Extensibility 5.3
バックアップのために、通常のファイルとして保存した後で、
「名前を付けて保存」でアドインファイルとして保存し、クローズ。
「ツール」→「アドイン」から、[参照]ボタンで作ったアドイン
を指定。
後は、自動実行したいマクロを通常ファイルの標準モジュールに
Auto_Open というプロシージャ名で記述すれば、OKです。
# 動作確認: WinMe+Office2000 SP-2
PowerPoint2002:
インストールしていないので、デフォルトで有効かはわかりません
が、上述の方法は適用できると思います。
ところで、PowerPoint で自動実行するマクロって、アドインで
設定を変更する(メニューを追加するとか)以外にどんな使い道
があるのでしょう?
単に、自動的にスライドショーを開始するだけなら、スライド
ショー形式で保存すればすむことです。
--
Miyahn?犬年うまれ
HQF0...@nifty.ne.jp
> バージョンの情報がないのでフォローに困りますね。
失礼しました。
Windows98SE+PowerPoint2000 です。
早速試させていただきます。
まずはお礼まで。
Kage