http://q.hatena.ne.jp/1281617188 の 質問 回答下書き。
Power Point (できれば2003) のスライドショー実行中に、
スライド画面に配置した「次のページに行く」ボタンを押す以外の操作では先のページに進まないようにするには、
どのようにVBAで制御すればいいですか?
たとえばクリックや右矢印ボタンでは先のページに進まないようにしたいのです。よろしくお願いいたします。
質問を勝手に2つに分割してみます。
1.クリックや右矢印ボタンでは先のページに進まないようにしたい
2.スライド画面に配置した「次のページに行く」ボタンを押すにコードを書く
1.クリックや右矢印ボタンでは先のページに進まないようにしたい
前、同じような質問
http://q.hatena.ne.jp/1278176601
[Powerpoint マクロ]
パワーポイントで、スライドショーを実行している間、特定の(例えば表示順が偶数番目の)スライドを表示したときに、外部の実行ファイルを動かしたいのですが、そのコードまたは、方法を記載しているWebページがあったら、教えていただけますでしょうか。Powerpointのバージョンは2002、WindowsXP上で動かします。
でコメントで答えたとき( http://q.hatena.ne.jp/1278176601#c181582 )
[PPT2000 アプリケーション レベルのイベント ハンドラーを作成します。
http://support.microsoft.com/kb/234184/ja
を参考にして、
Public WithEvents appevent As Application
なんて感じで、イベントを取得。
コイツを使ってみます。
こんな感じで、クラスモジュールを書く
'下記は標準モジュールに(上記のClass1 の名前で作成したイベントを使う・結びつける) Option Explicit Dim myobject As New Class1 'イベント処理を記載したクラス(クラスモジュールに処理を記載) Public nPage As Integer 'ページを動かしたくないので、現在ページを自分で管理 Sub スライドショーの開始() 'イベントが取りたいので、Applicationとクラスモジュールの結びつけ Set myobject.appevent = Application ActivePresentation.SlideShowSettings.Run 'スライドショーの開始 End Sub
'クラスモジュールに書く Class1 の名前で作成 Option Explicit ' PPT2000 アプリケーション レベルのイベント ハンドラーを作成します。 ' http://support.microsoft.com/kb/234184/ja を 参考にして WithEventsのテスト Public WithEvents appevent As Application Private Sub appevent_SlideShowBegin(ByVal Wn As SlideShowWindow) 'スライドショー開始時のイベント? 'ここで、いろいろと初期設定を行う? Debug.Print "_SlideShowBegin" nPage = 1 '初期化、1ページにする End Sub Private Sub appevent_SlideShowEnd(ByVal Pres As Presentation) MsgBox "end" End Sub Private Sub appevent_SlideShowNextClick(ByVal Wn As SlideShowWindow, ByVal nEffect As Effect) 'MsgBox "SlideShowNextClick page=" & Wn.View.CurrentShowPosition Debug.Print "_SlideShowNextClick " & Wn.View.CurrentShowPosition 'ページ数 'スライドショーのページを動かしたくないので、グローバル変数と比べる If nPage <> Wn.View.CurrentShowPosition Then 'ページが増えたり減ったりしたら Wn.View.GotoSlide nPage '強制的に自分が管理しているページに戻す End If End Sub Private Sub appevent_SlideShowOnNext(ByVal Wn As SlideShowWindow) Debug.Print "_SlideShowOnNext " & Wn.View.CurrentShowPosition 'テストでページ数 End Sub
ポイントは・・
クラスモジュールに WithEvents を作り、イベント処理を書きます。
(イベントに対して、処理がかけます)
グローバル変数で nPage を作り、ページ数を自分で管理します。
スライドショーのページが変化したときのイベント
_SlideShowNextClick
内で、
現在ページと自分で管理したページを比べて、
'スライドショーのページを動かしたくないので、グローバル変数と比べる
If nPage <> Wn.View.CurrentShowPosition Then 'ページが増えたり減ったりしたら
Wn.View.GotoSlide nPage '強制的に自分が管理しているページに戻す
End If
なんて感じで、強引に元のページに戻してみました。
※少し、画面がちらついてしまいますが・・・
動作・テスト動画 : http://www.youtube.com/watch?v=MzmQ_UntHjQ
www.youtube.com
2.スライド画面に配置した「次のページに行く」ボタンを押すにコードを書く
スライド画面に配置した「次のページに行く」ボタンを押す
を実現したかったので、
テキストボックスや図形を押したら、マクロを起動するようにしてみます。
テキストボックスには設定できなくて、
挿入 ―― 図形 ―― 動作設定ボタン で ボタンを配置してから、
ボタンを選択後・右クリックでマクロを結びつけます。
ボタンが押されたら、
Sub pagenext() nPage = nPage + 1 ActivePresentation.SlideShowWindow.View.Next End Sub
が起動されます。
中身は、管理しているページを+1して(nPage = nPage + 1)
単純に、ActivePresentation.SlideShowWindow.View.Next で 次ページを表示します。
表示されると、
Private Sub appevent_SlideShowNextClick
が走りますが、
If nPage <> Wn.View.CurrentShowPosition Then
を比べても同じなので、そのまま通過します。
動作・テスト動画 : http://www.youtube.com/watch?v=flY21okTKO8
www.youtube.com
終わりのあいさつ
少し、イヤ、かなり小細工 入ってますがこんな感じで、
クリックや右矢印 の 移動を殺して、設置したボタン(動作設定ボタン)で移動してみました。
PowerPoint2007ですが、2003に応用できるといいなぁ・・と思いつつ、失礼します。
ここから下、本文と関係ない広告
本家よりも検索順位が上がるとなんかイヤなので、関係ない広告を置いて、順位をわざと下げる。種類別の人気
【いい肉屋】8月福袋☆真夏の焼肉(バーベキュー)セット[どっさり1Kg入 8月15日...[続きを見る]江戸風漢字文字盤 腕時計★男女ペア★ゴールド → 8月15日...[続きを見る]
ガミラシークレット ローズマリー 115g → 8月15日...[続きを見る]
DUCT イタリアンレザー ラウンドファスナー バイブルサイズ システム 8月15日...[続きを見る]
信楽焼 泡マグ (少量のビールを注いで数分待つと泡が不思議な形に! ) 8月15日...[続きを見る]
SIERRA DESIGNS(シェラデザインズ) ゾロ2 2人用 SD5 8月15日...[続きを見る]
Band-in-a-Box 18 Windows MegaPAK → 8月15日...[続きを見る]
【エコポイント対象商品】 TOSHIBA REGZA 32V型 地上・B 8月15日...[続きを見る]
TOCA SFDMX-12AS → 8月15日...[続きを見る]
コンビ メチャカルファーストEY-360(キャメルブラウン)+ダッコシー 8月15日...[続きを見る]
スティーブ・ジョブズ 驚異のプレゼン―人々を惹きつける18の法則 - 現在人気の スティーブ・ジョブズ 驚異のプレゼン―人々を惹きつける18の法則 など 本・書籍を紹介する(...[続きを見る]
超売れ筋 イタリア製 5mm スリムタイプ 本革 カチューシャ K204 8月15日...[続きを見る]
KOTOKO/Loop-the-Loop 〈初回限定盤〉 TVアニメ「も 8月15日...[続きを見る]
うたの☆プリンスさまっ♪ -Sweet Serenade-(通常版)(2 8月15日...[続きを見る]
生地 S45C Q平行ピン(B種 4X10 【7個入】 → 8月15日...[続きを見る]
刀語 第八巻 / 微刀・釵 【完全生産限定版】 8月15日...[続きを見る]
静音計画 ロードノイズ低減プレート 2667 → 8月15日...[続きを見る]
シルバー925 キュービックジルコニア&ミニパールのハイビスカス ペンダ 8月15日...[続きを見る]
ワンピース DX王下七武海フィギュアvol.1 ONE PIECE バン 8月15日...[続きを見る]
2010年人気
01月13日 ELECOM USBテンキーボード 薄型コンパクトデザイン パンタグラフ ホワイト TK-TCP006WH - エレクトロニクス 〜...[続きを見る]
02月14日 スウォッチ(swatch) 腕時計 Swatch Colour Code Collection 2010 BLACK SUIT GB247 ユニセックス [正規輸入品] - レディースWatch 〜...[続きを見る]
03月15日 所さんの世田谷ベース IV [DVD] - DVDBOX 〜...[続きを見る]
04月14日 FILCO 直角ケーブル3号 3ピンミッキータイプ・カマ型 携帯便利ノートPCACアダプター用ケーブ... ブラック FCC60-03 - エレクトロニクス 〜...[続きを見る]
05月15日 CYBER コードフリークtypeIII(DS用) - GAME 〜...[続きを見る]
ミノウラ GYRO V270-2(ジャイロ) トレーニングマシン (リモコン付) : 06月07日頃にチェックされた商品...[続きを見る]
上京はしたけれど。 : 07月26日頃にチェックされた商品...[続きを見る]
モータウン:グルグルレザーメンテナンスクリーニングオイル - 8/15...[続きを見る]
11日 スペシャルサプライセット 「魔法少女リリカルなのはA's」 - おもちゃ ほか...[続きを見る]
14日 EPSON インパクトプリンター VP-F2000 USBインターフェイス搭載 24ピン 106桁 水平型 7枚複写(オリジナル+6枚) 英数330字/秒 漢字146字/秒 - エレクトロニクス ほか...[続きを見る]
ドロンジョ の関連商品 を探す...[続きを見る]
フランキンセンス の関連商品 を探す...[続きを見る]
2010年8月15日...[続きを見る]
08月15日 リボルテックヤマグチ No.95 石田三成 - おもちゃ ほか...[続きを見る]
2010年8月15日...[続きを見る]
これくらいやっとけば、検索順位も下がるかなぁ
※逆に、上がったら怖いけど・・・まぁ、そんなことは無いので余計な心配はしない。