パワーポイントのスライド番号の取得方法

このQ&Aのポイント
  • パワーポイント2007において、プレゼンテーション中に現在表示中のスライド番号を取得する方法について解説します。
  • マクロを使用することで、ActiveWindow.Selection.SlideRange.SlideNumber を利用して現在のスライド番号を取得することができます。
  • ただし、この方法はプレゼンテーション実行中では動作しないため、別の方法を探す必要があります。
回答を見る
  • ベストアンサー

パワーポイントのスライド番号の取得をしたい

はじめまして パワーポイント2007におきまして、プレゼンテーション実行中に、 マウスにてスライド内のボタンを押すと「現在のページ数+10ページ先のページに飛ぶ」というような動作を行わせようとしています。 http://support.microsoft.com/kb/163194/ja の ActiveWindow.Selection.SlideRange.SlideNumber を利用し、 ======================================================= Sub TenPageGo() PN = ActiveWindow.Selection.SlideRange.SlideNumber GO = PN + 10 SlideShowWindows(Index:=1).View.GotoSlide Index:=GO End Sub ======================================================= といったマクロにて実行を考えましたが、 ActiveWindow.Selection.SlideRange.SlideNumber は、プレゼンテーション中には動作してくれない模様です。 よって、プレゼンテーション中に現在表示中のプ レゼンテーション番号を取得する方法をご教授いただきたくお願い申し上げます。

質問者が選んだベストアンサー

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

気になって、調べてみましたら「CurrentShowPosition」で頁番号が取得できるようです。 Nextで送るよりこの方が良いですね PN = SlideShowWindows(Index:=1).View.CurrentShowPosition SlideShowWindows(Index:=1).View.GotoSlide Index:=PN + 10

okotami
質問者

お礼

mt2008様 再度のお教え大変恐縮です。 御蔭さまで非常にスムーズな動作で動かす事が出来ました。 言葉だけの御礼となってしまうのが心苦しい限りです この度は誠にありがとうございました。 もしもこちらの質問を見る事のある方の為に以下を記載します。 その後、下のやり方でも似たような動作を確認する事が出来ました。 ======================= PN = SlideShowWindows(1).View.Slide.SlideIndex GO = PN + 10 SlideShowWindows(Index:=1).View.GotoSlide Index:=GO =======================

その他の回答 (1)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

頁番号取得ではないですが、10ページ先を表示したいなら、コレで如何でしょう For i = 1 To 10   SlideShowWindows(Index:=1).View.Next Next i PowerPointからマクロの記録が消えてから色々やりにくいですよね。

okotami
質問者

お礼

mt2008様 ご回答、ご教授をありがとうございます。 思った通りの動作が出来ました、ありがとうございます。 只、各ページが重い為、ページ変更を行うのに時間がかかってしまうのと、 飛ばしたページの描画が行われる為、飛ばすというよりは「早送り」になってしまいました。 よって、エクセルなどでよく使用しておりました、 Application.ScreenUpdating = False Application.ScreenUpdating = True にて、描画の一時停止を考えたのですが、うまくいきませんでした。 別の方法や、頂戴しました方法への追加のご教授なども賜りたく、引き続き質問を継続いたします。

関連するQ&A

  • パワーポイント2003のマクロについて

    OSはXP、パワーポイント2003を使っています。スライドが15枚あります。15枚には3パターンで使用するスライドが入っています。パターン1では必要なスライドは8枚、パターン2では10枚、パターン3では13枚です。不要なスライドを削除するために、ネットで調べてマクロによる削除まで出来ました。スライドの削除は途中のスライドを削除したりするので、表題に付与している項目番号が変わります。 表題の項目番号はスライドの一番左上に記載しています。 マクロで文中に「1-(1)」「1-(2)」「1-(3)」「1-(4)」「2-(1)」「2-(2)」「3-(1)」を記載して、指定するスライドの左上に書き込むことは出来るでしょうか。もしくはマクロを実行させるPPTのファイルがあるのですが、これの2枚目以降のスライドに項目番号を記載し、コレをコピー&ペーストで実行することが出来るでしょうか。 教えていただける方、どうぞよろしくお願いします。 スライドを削除するVBAは下記で実行できました。 Sub pt1() ' ' マクロ記録日: 2012/5/28 ユーザー名: Dim myPath As String Dim PPTName As String Dim ThisPresentation As Presentation Dim CurrentPPT As Presentation Set ThisPresentation = ActivePresentation myPath = ActivePresentation.Path '自ファイルのパス取得 If Right$(myPath, 1) <> "\" Then myPath = myPath & "\" End If PPTName = Dir(myPath & "会議資料(原本).ppt") If PPTName <> ThisPresentation.Name Then Set CurrentPPT = Presentations.Open(myPath & PPTName) 'ファイル開く End If ActiveWindow.View.GotoSlide Index:=15 ActiveWindow.Selection.SlideRange.Delete ActiveWindow.View.GotoSlide Index:=14 ActiveWindow.Selection.SlideRange.Delete ActiveWindow.View.GotoSlide Index:=13 ActiveWindow.Selection.SlideRange.Delete ActiveWindow.View.GotoSlide Index:=12 ActiveWindow.Selection.SlideRange.Delete ActiveWindow.View.GotoSlide Index:=11 ActiveWindow.Selection.SlideRange.Delete ActiveWindow.View.GotoSlide Index:=10 ActiveWindow.Selection.SlideRange.Delete ActiveWindow.View.GotoSlide Index:=9 ActiveWindow.Selection.SlideRange.Delete ActiveWindow.View.GotoSlide Index:=8 ActiveWindow.Selection.SlideRange.Delete ActiveWindow.View.GotoSlide Index:=7 ActiveWindow.Selection.SlideRange.Delete ActiveWindow.View.GotoSlide Index:=4 ActiveWindow.Selection.SlideRange.Delete ActiveWindow.View.GotoSlide Index:=3 ActiveWindow.Selection.SlideRange.Delete ActiveWindow.View.GotoSlide Index:=1 ActiveWindow.Selection.SlideRange.Delete MsgBox "作成終了" End Sub

  • パワーポイント オブジェクトへ複数の動作設定を実行させたい

    複数のスライド(フォルダの階層アリ)をリンクして資料を作成しています。 しかし、その資料を閲覧していると、たくさんのパワーポイントファイルが開いたままになり、それの解消策を考えています。 単純にまず2つのファイルの例で考えてみます。 1.Aスライド → Bスライドへ ハイパーリンクで飛びます。 2.Bスライドの最後のページにAスライドへ戻るリンクボタンが あります。 このBスライドのボタンにBスライドの終了と、Aスライドへのリンクを登録したいのです。 通常パワーポイントの「オブジェクトの動作設定」では、1つのことしか選べません。 ですので、マクロでやってみようと思いました。 しかし記録マクロの知識しかなく、2回に分けて記録したマクロを いろいろ編集してみましたが、今度は何も動かなくなります。 最後の黒い画面までいけば終了するのですが、そうでなくリンクして いければと思っています。 マクロで可能でしょうか?他にアイデアなどありましたら、ご指導 アドバイスをどうぞよろしくお願いします。 office2003 winXP HE 資料は最終的にプレゼンテーションパックにてCDにします。 記録マクロ1 Sub 終了() ActiveWindow.Selection.SlideRange.Shapes("AutoShape 26").Select With ActiveWindow.Selection.ShapeRange.ActionSettings(ppMouseClick) ActivePresentation.Close .SoundEffect.Type = ppSoundNone .AnimateAction = msoTrue End With With ActiveWindow.Selection.ShapeRange.ActionSettings(ppMouseOver) .Action = ppActionNone .SoundEffect.Type = ppSoundNone .AnimateAction = msoFalse End With End Sub 記録マクロ2 Sub リンク2() ActiveWindow.Selection.SlideRange.Shapes("AutoShape 26").Select With ActiveWindow.Selection.ShapeRange.ActionSettings(ppMouseClick) .Hyperlink.Address = "D:\スライドA.pps" .SoundEffect.Type = ppSoundNone .AnimateAction = msoTrue End With With ActiveWindow.Selection.ShapeRange.ActionSettings(ppMouseOver) .Action = ppActionNone .SoundEffect.Type = ppSoundNone .AnimateAction = msoFalse End With End Sub

  • 画像に名前を付けたい・変更したい

    パワポ2003です。 新規でプレゼンテーションを立ち上げて 外部から持ってきた画像をスライド上に張り付けて マクロの記録を押して、外部画像を動かすと Sub Macro1() ActiveWindow.Selection.Unselect ActiveWindow.Selection.SlideRange.Shapes("Picture 4").Select With ActiveWindow.Selection.ShapeRange .IncrementLeft 22.5 .IncrementTop -372# End With End Sub と記録されたのですが、「Picture 4」の部分を変更することはできますか?

  • パワーポイントのスライドショーについて

    現在、プレゼンテーションを行なうために、 パワーポイントでスライドショーの設定を行なっています。 ところが、「オブジェクトの動作設定」や『動作ボタン」を多用しており スライドが「何枚か先に飛んだり、以前説明したスライドに戻ったり」 などを繰り返すようなプレゼンテーションの順番を考えております。 しかしこの動作をプレゼン当日、話しながら間違いなく操作する自信がなく、 また他のものにその順番を説明して、理解してもらうのも非常に難しいと感じております。 そこで、事前にスライドショーの順番を指定しておき、当日はクリック一つで最初から最後までとおす、ということはできないでしょうか。

  • VBA コマンドボタンを押して非表示にしたい

    パワポ2003です。 スライドにオートシェイブで四角形を挿入し、コマンドボタンを設置しました。 そのコマンドボタンを押すと、四角形を非表示にしたいのですが、 デザインビューの状態で、 Private Sub CommandButton1_Click() ActiveWindow.Selection.SlideRange.Shapes("Rectangle 4").Visible = vbFalse End Sub を実行すると、該当の四角形が消えるのですが F5でスライドを実行中に、コマンドボタンを押すと ----------------------------------------------------- 実行時エラー '-2147188160 (80048240)': Application (不明なメンバー): 無効な要求です。アクティブなドキュメント ウィンドウがありません。 ----------------------------------------------------- というエラーになってしまいます。 どうしたら、スライドを実行中にコマンドボタンを押して、 テキストボックスを非表示に出来るのでしょうか? 宜しくお願いいたします。

  • Power Point 2007のマクロについて 

     はじめまして  業務効率化のためマクロを使うようになった初心者ユーザーです。  Power point2007を用いてすべてのページの画像を一括でサイズ変更と位置変更を行いたいと思っています。  見よう見まねで下記のようなマクロを組んでみたのですが、  タイトルテキストもサイズ変更されてしまうので除外したいのですが、どのようにすればよろしいでしょうか?  またこのサイズ変更した画像だけを他のpowerpointファイルに画像1枚1ページずつ自動で貼り付けたいのですが、その方法も教えてほしいです。  なお、他のファイルの既存スライドに貼り付けを行おうとしています。  (画像に関しての説明文書が既に記入済み)  お手間を取らせて申し訳ないのですが、迷える子羊に愛の手をお願いいたします。   Public Sub 画像サイズ変更と位置合わせマクロ() Dim i As Long For i = 1 To ActivePresentation.Slides.Count ActiveWindow.View.GotoSlide i ActiveWindow.Selection.SlideRange.Shapes.SelectAll With ActiveWindow.Selection.ShapeRange .Fill.Transparency = 0# .Height = 401# .Width = 687.09 .Left = 20# .Top = 56.62 End With Next End Sub

  • PowerPointスライドショーのマクロ

    Office XPのPowerPointのマクロで2つのスライドショーを制御したいと考えています。 <想定している動作> 1)スライドショーAはエンドレスで流れている 2)スライドショーA内にあるリンクボタンを押すと、スライドショーBが流れ始める(マクロを実行) 3)スライドショーBは1回流れるとスライドショーAに切り替わる 4)スライドショーAがエンドレスで流れ始める マクロを途中まで作成したのですが、4)で、スライドショーAがリンクボタンを押した状態のまま固まってします。 ソースは以下です。 Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Sub slide()   PowerPoint.Presentations.Open ("C:\スライドB.ppt") With     ActivePresentation.Slides.Range.SlideShowTransition .AdvanceOnClick = msoFalse .AdvanceOnTime = msoTrue       '表示秒数  .AdvanceTime = 30000 End With With ActivePresentation.SlideShowSettings .ShowType = ppShowTypeSpeaker .LoopUntilStopped = msoFalse '繰り返し上映はしない .ShowWithNarration = msoTrue .ShowWithAnimation = msoTrue .RangeType = ppShowAll .AdvanceMode = ppSlideShowUseSlideTimings .PointerColor.SchemeColor = ppForeground .Run End With   Sleep (1000) SlideShowWindows(Index:=1).View.Next Sleep (1000) SlideShowWindows(Index:=1).View.Next Sleep (1000) SlideShowWindows(Index:=1).View.Exit Sleep (1000) ActivePresentation.Close PowerPoint.ActiveWindow.Activate End Sub どなたかお分かりになる方いらっしゃいますか? 上のソースをベースにしなくても良いので、ぜひアドバイスお願いします!

  • PowerPointのVBAで、図形を縮小後、画質を落とさずに出力する方法

    PowerPointのVBAで、スライド上の図形のサイズを縮小した後、この図形をjpg画像として保存したいです。 オペレーションはこんな感じです↓ 図形縮小→図形を選択→右クリック→[図として保存]→JPGファイル名で保存 上記操作を「マクロの記録」で記録したものを実行すると、スライド全体が保存されてしまいます。 また、マクロで.ShapeRange.Exportで画像出力すると、画質が荒くなって出力されます。 画質を落とさず、図形をjpgとして保存する方法はないでしょうか。 よろしくお願い致します。 以下が、現状の私のプログラムです。 Sub Macro() ActiveWindow.Selection.SlideRange.Shapes.AddPicture(FileName:="C:\aaaa.JPG", LinkToFile:=msoFalse, SaveWithDocument:=msoTrue, Left:=-119, Top:=-89, Width:=960, Height:=720).Select ActiveWindow.LargeScroll ToRight:=1 With ActiveWindow.Selection.ShapeRange .ScaleWidth 0.25, msoFalse, msoScaleFromTopLeft .ScaleHeight 0.25, msoFalse, msoScaleFromTopLeft End With With ActiveWindow.Selection.ShapeRange .IncrementLeft 219.12 .IncrementTop 416.75 End With ActiveWindow.Selection.ShapeRange.Select 'これだと画質が落ちます。↓ Call ActiveWindow.Selection.ShapeRange.Export("C:\\bbb.jpg", ppSaveAsJPG) 'これだとスライド全体が保存されます。↓ ' ActivePresentation.SaveAs FileName:="C:\bbb.jpg", FileFormat:=ppSaveAsJPG, EmbedTrueTypeFonts:=msoFalse End Sub

  • アウトラインに表示されている文字 取得したいのです

    アウトラインに表示されている文字(タイトル?)のみ取得したいのですが、 Dim sld As Slide Dim shp As Shape Sub test() For Each sld In ActivePresentation.Slides sld.Select For Each shp In ActiveWindow.Selection.SlideRange.Shapes Debug.Print shp.TextEffect.Text Next shp Next sld End Sub を実行すると、アウトラインだけではなく、 テキストボックスにあるすべての値まで取得してしまいます。 アウトラインのタイトル部分のみ表示される文字を取得するコードはありますか? 「クリックしてタイトルを入力」 「・クリックしてテキストを入力」 とスライドにデフォルトで表示されますが、 「クリックしてタイトルを入力」のみの値を取得したいです。

  • パワーポイントの現在のスライドをマクロで画像保存

    パワーポイントのマクロの記録で、現在のスライドをJPEG保存した動作を記録すると以下の様になります。 ActivePresentation.SaveAs FileName:="C:\powerpoint.jpg", FileFormat:=ppSaveAsJPG, EmbedTrueTypeFonts:=msoFalse しかし、これを実行すると、全てのスライドがJPEG保存されます。 現在のスライドをJPEG保存したい場合のマクロはどのようになるのでしょう? ExcelVBAはそこそこ使用経験があるのですが、パワーポイントは初挑戦です。 アクティブなスライドの取得して、スライド一枚の出力をする、ということなんでしょうが・・・ よろしくお願いします。

専門家に質問してみよう