Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Auto_Open()マクロ

776 views
Skip to first unread message

news.mable.ne.jp

unread,
Nov 14, 2001, 7:10:20 PM11/14/01
to
Kageです。よろしくお願いします。
過去ログから、Miyahnさんに直接メールを送ってしまいました。
Miyahnさん、ごめんなさい。

さて、ワードやエクセルにはファイルを開いたときに自動実行する
Auto_Open()マクロがありますが、パワーポイントは見当たりません。
何か方法はないものでしょうか?よろしくお願いします。

なお、この質問は「かずさん」の01/08/19のものと同じです。

Miyahn

unread,
Nov 15, 2001, 10:59:36 AM11/15/01
to
"news.mable.ne.jp" <ka...@mable.ne.jp> wrote in message news:u#T55mWbBHA.1488@tkmsftngp02...

> さて、ワードやエクセルにはファイルを開いたときに自動実行する
> Auto_Open()マクロがありますが、パワーポイントは見当たりません。
> 何か方法はないものでしょうか?よろしくお願いします。

バージョンの情報がないのでフォローに困りますね。

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

kage

unread,
Nov 15, 2001, 6:57:36 PM11/15/01
to
Miyahn さん、ありがとうございます。

> バージョンの情報がないのでフォローに困りますね。

失礼しました。
Windows98SE+PowerPoint2000 です。
早速試させていただきます。
まずはお礼まで。

Kage

0 new messages