現在オフラインです。再接続するためにインターネットの接続を待っています

Visual Basic .NET 2003 を使用して Office PowerPoint 2003 のイベントを処理する方法

Office 2003 のサポートは終了しました

マイクロソフトでは、2014 年 4 月 8 日に Office 2003 のサポートを終了しました。この変更は、ソフトウェアの更新プログラムおよびセキュリティ オプションに影響しています。 この変更の意味および保護された状態を維持する方法について説明します。

はじめに
この資料では、Microsoft Visual Basic .NET 2003 を使用してオートメーション クライアントを開発して、Microsoft Office PowerPoint 2003 のイベントを処理する方法について説明します。

先頭に戻る

イベント ハンドラの作成

次のいずれかの方法を使用して、Visual Basic .NET でイベント ハンドラを作成できます。イベント ハンドラをイベントに関連付ける方法に応じて、どちらかの方法を選択します。
  • 方法 1

    通常、イベント ハンドラは、Handles キーワードと WithEvents キーワードを使用して作成します。オブジェクトの参照変数を WithEvents キーワードを使用して宣言した場合、Visual Basic .NET は実行時にそのオブジェクトのイベントに自動的に接続します。オブジェクトの特定のイベントを処理するには、コード ビューを表示しているときに、Visual Studio .NET 環境の [クラス名] ボックスおよび [メソッド名] ボックスの一覧を使用して、関連するハンドラを追加します。
  • 方法 2

    Visual Basic .NET には、イベントを処理するための別の方法が用意されています。AddHandler ステートメントと RemoveHandler ステートメントを使用すると、特定のイベントに対するイベント処理を動的に開始することや停止することができます。

    : WithEvents キーワードを使用してイベント処理を作成した場合、System.Reflection.TargetInvocationException 例外が発生することがあります。このため、イベント ハンドラを作成するには、AddHandler イベントを使用してください。
先頭に戻る

PowerPoint のイベントを処理する Visual Basic .NET オートメーション クライアントの作成

次の 2 組の手順では、Visual Basic .NET を使用して開発オートメーション クライアントを開発して、AddHandler ステートメントを使用して PowerPoint アプリケーション イベントを処理する方法を示します。

Visual Basic .NET プロジェクトを作成するには、以下の手順を実行します。
  1. Microsoft Visual Studio .NET 2003 を起動します。
  2. [ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。
  3. [プロジェクトの種類] ボックスの一覧で [Visual Basic プロジェクト] をクリックします。[テンプレート] ボックスの一覧で [Windows アプリケーション] をクリックします。
  4. プロジェクトに PowerPointEvents という名前を付けて、[OK] をクリックします。

    デフォルトでは、Form1 という名前のフォームが作成されます。
Microsoft PowerPoint Object Library および Microsoft Graph Object Library への参照を追加するには、以下の手順を実行します。
  1. [プロジェクト] メニューの [参照の追加] をクリックします。
  2. [COM] タブで [Microsoft PowerPoint 11.0 Object Library] をクリックし、[選択] をクリックします。
  3. [COM] タブで [Microsoft Graph 11.0 Object Library] をクリックし、[選択] をクリックします。
  4. [参照の追加] ダイアログ ボックスの [OK] をクリックして選択を確定します。
  5. フォームをダブルクリックします。

    コード ウィンドウが表示されます。
  6. Form1.vb ファイルの先頭に、次のコードを追加します。
    	Imports PowerPoint = Microsoft.Office.Interop.PowerPoint	Imports Office = Microsoft.Office.Core	Imports Graph = Microsoft.Office.Interop.Graph
  7. [表示] メニューの [デザイナ] をクリックします。
  8. [表示] メニューの [ツールボックス] をクリックし、Form1 にボタンを 1 つ追加します。
  9. [Button1] をダブルクリックします。

    コード ウィンドウに Button1_Click イベントが表示されます。
  10. コード ウィンドウで、Button1_Click イベントの直前に以下のコードを配置します。
    	Dim oApp As PowerPoint.Application	Dim oPres As PowerPoint.Presentation
  11. 次のコードを Button1_Click イベントに追加します。
    	Const sTemplate = "C:\Program Files\Microsoft Office\Templates\Presentation Designs\Orbit.pot"        ' If the previous template is not available, change the template name to a template name that is on your system.        Const sVideo = "C:\WINDOWS\system32\oobe\images\intro.wmv"        Dim oPresentations As PowerPoint.Presentations        Dim oSlides As PowerPoint.Slides        Dim oSlide As PowerPoint.Slide        Dim oShapes As PowerPoint.Shapes        Dim oShape As PowerPoint.Shape        Dim oMovie As PowerPoint.Shape        Dim oAnimationSettings As PowerPoint.AnimationSettings        Dim oPlaySettings As PowerPoint.PlaySettings        Dim oTextFrame As PowerPoint.TextFrame        Dim oTextRange As PowerPoint.TextRange        Dim oFont As PowerPoint.Font        Dim oOLEFormat As PowerPoint.OLEFormat        Dim oShadow As PowerPoint.ShadowFormat        Dim oForeColor As PowerPoint.ColorFormat        Dim oRange As PowerPoint.SlideRange        Dim oSlideShowTransition As PowerPoint.SlideShowTransition        'Start PowerPoint and then make the PowerPoint window visible but minimized.        oApp = New PowerPoint.Application        'Add event handlers.        AddHandler oApp.SlideShowBegin, AddressOf oApp_SlideShowBegin        AddHandler oApp.SlideShowNextSlide, AddressOf oApp_SlideShowNextSlide        AddHandler oApp.PresentationClose, AddressOf oApp_PresentationClose        oApp.Visible = True        oApp.WindowState = PowerPoint.PpWindowState.ppWindowMinimized        'Create a new presentation that is based on the specified template.        oPresentations = oApp.Presentations        oPres = oPresentations.Open(sTemplate, , , True)        'Build slide 1.        'Add text to the slide, change the font, and then insert or position a         'movie on the first slide.        oSlides = oPres.Slides        oSlide = oSlides.Add(1, PowerPoint.PpSlideLayout.ppLayoutTitleOnly)        oShapes = oSlide.Shapes        oShape = oShapes.Item(1)        oTextFrame = oShape.TextFrame        oTextRange = oTextFrame.TextRange        oTextRange.Text = "My sample presentation"        oFont = oTextRange.Font        oFont.Name = "Comic Sans MS"        oFont.Size = 48        oMovie = oShapes.AddMediaObject(sVideo, 150, 150, 500, 350)        oAnimationSettings = oMovie.AnimationSettings        oPlaySettings = oAnimationSettings.PlaySettings        oPlaySettings.PlayOnEntry = True        oPlaySettings.HideWhileNotPlaying = True        'NAR to release references.        NAR(oPlaySettings)        NAR(oAnimationSettings)        NAR(oMovie)        NAR(oFont)        NAR(oTextRange)        NAR(oTextFrame)        NAR(oShape)        NAR(oShapes)        NAR(oSlide)        NAR(oSlides)        'Build slide 2.        'Add text to the slide title and then format the text. Also, add a chart to the        'slide and then change the chart type to a 3D Column Clustered.        oSlides = oPres.Slides        oSlide = oSlides.Add(2, PowerPoint.PpSlideLayout.ppLayoutTitleOnly)        oShapes = oSlide.Shapes        oShape = oShapes.Item(1)        oTextFrame = oShape.TextFrame        oTextRange = oTextFrame.TextRange        oTextRange.Text = "My chart"        oFont = oTextRange.Font        oFont.Name = "Comic Sans MS"        oFont.Size = 48        Dim oChart As Graph.Chart        oShape = oShapes.AddOLEObject(150, 150, 480, 320, "MSGraph.Chart.8")        oOLEFormat = oShape.OLEFormat        oChart = oOLEFormat.Object        oChart.ChartType = Graph.XlChartType.xl3DColumnClustered        'NAR to release references.        NAR(oChart)        NAR(oOLEFormat)        NAR(oFont)        NAR(oTextRange)        NAR(oTextFrame)        NAR(oShape)        NAR(oShapes)        NAR(oSlide)        NAR(oSlides)        'Build slide 3.        'Add a text effect to the slide and then apply shadows to the text effect.        oSlides = oPres.Slides        oSlide = oSlides.Add(3, PowerPoint.PpSlideLayout.ppLayoutBlank)        oSlide.FollowMasterBackground = False        oShapes = oSlide.Shapes        oShape = oShapes.AddTextEffect(Office.MsoPresetTextEffect.msoTextEffect27, _            "The End", "Impact", 96, False, False, 230, 200)        oShadow = oShape.Shadow        oForeColor = oShadow.ForeColor        oForeColor.SchemeColor = PowerPoint.PpColorSchemeIndex.ppForeground        oShadow.Visible = True        oShadow.OffsetX = 3        oShadow.OffsetY = 3        'NAR to release references.        NAR(oShadow)        NAR(oForeColor)        NAR(oShape)        NAR(oShapes)        NAR(oSlide)        NAR(oSlides)        'Modify the slide show transition settings for all three slides in        'the presentation.        Dim SlideIdx(3) As Integer        SlideIdx(0) = 1        SlideIdx(1) = 2        SlideIdx(2) = 3        oSlides = oPres.Slides        oRange = oSlides.Range(SlideIdx)        oSlideShowTransition = oRange.SlideShowTransition        oSlideShowTransition.AdvanceOnTime = False        oSlideShowTransition.EntryEffect = PowerPoint.PpEntryEffect.ppEffectBoxOut        'Run the slide show in a separate method.        RunSlideShow()        'NAR to release references.        NAR(oSlideShowTransition)        NAR(oRange)        NAR(oSlides)        'Close the presentation without saving changes and then quit PowerPoint.        oPres.Saved = True        oPres.Close()        'NAR the presentation objects.        NAR(oPres)        NAR(oPresentations)        'Remove all event handlers.        RemoveHandler oApp.SlideShowBegin, AddressOf oApp_SlideShowBegin        RemoveHandler oApp.SlideShowNextSlide, AddressOf oApp_SlideShowNextSlide        RemoveHandler oApp.PresentationClose, AddressOf oApp_PresentationClose        'Quit PowerPoint.        oApp.Quit()        NAR(oApp)        GC.Collect()
  12. コード ウィンドウで、Button1_Click イベントの下に以下のコードを配置します。
    	Private Sub RunSlideShow()            Dim oSettings As PowerPoint.SlideShowSettings	    Dim oSlideShowWindows As PowerPoint.SlideShowWindows	    oSettings = oPres.SlideShowSettings	    oSettings.StartingSlide = 1       	    oSettings.EndingSlide = 3            'Run the slide show. Wait for the slide show to finish.            oSettings.Run()            oSlideShowWindows = oApp.SlideShowWindows            On Error Resume Next            Do While oSlideShowWindows.Count >= 1	        System.Windows.Forms.Application.DoEvents()       	    Loop	    NAR(oSlideShowWindows)            NAR(oSettings)	End Sub    	'NAR function to remove reference.   	Private Sub NAR(ByVal o As Object)            Try	        System.Runtime.InteropServices.Marshal.ReleaseComObject(o)            Catch            Finally                o = Nothing            End Try    	End Sub
  13. 前のコードの下に次のハンドラを追加します。
    	'Event Handlers    	Private Sub oApp_SlideShowBegin(ByVal Wn As Microsoft.Office.Interop.PowerPoint.SlideShowWindow)            'Change the position and the size of the slide show window.            Dim oView As PowerPoint.SlideShowView            With Wn                .Height = 325                .Width = 400                .Left = 100                .Activate()            End With           'Start the movie at the first slide.            oView = Wn.View            oView.Next()            NAR(oView)            NAR(Wn)    	End Sub    	Private Sub oApp_SlideShowNextSlide(ByVal Wn As Microsoft.Office.Interop.PowerPoint.SlideShowWindow)            'Change the color and the type of pointer depending on the slide.            Dim Showpos As Integer            Dim oView As PowerPoint.SlideShowView            Dim oColorFormat As PowerPoint.ColorFormat            oView = Wn.View            Showpos = oView.CurrentShowPosition + 1            If Showpos = 3 Then                oColorFormat = oView.PointerColor                oColorFormat.RGB = RGB(255, 0, 0)                oView.PointerType = PowerPoint.PpSlideShowPointerType.ppSlideShowPointerPen            Else                oColorFormat = oView.PointerColor                oColorFormat.RGB = RGB(0, 0, 0)                oView.PointerType = PowerPoint.PpSlideShowPointerType.ppSlideShowPointerArrow            End If            NAR(oColorFormat)            NAR(oView)            NAR(Wn)    	End Sub    	Private Sub oApp_PresentationClose(ByVal Pres As Microsoft.Office.Interop.PowerPoint.Presentation)            'Before you close the presentation, save the presentation as HTML.            Pres.SaveAs("C:\TestEvents.htm", PowerPoint.PpSaveAsFileType.ppSaveAsHTML)            NAR(Pres)    	End Sub
先頭に戻る

サンプルの実行

  1. F5 キーを押してアプリケーションを実行します。
  2. [Button1] をクリックします。

    PowerPoint でスライド ショーが始まります。次の点を確認してください。
    • 最初のスライドでは、ビデオが始まります。
    • マウス ポインタの種類が変更されています。
    • グラフを含んだ 2 枚目のスライドで色が変わります。
  3. プレゼンテーションを閉じます。
先頭に戻る
関連情報
関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
308330 [HOWTO] Visual Basic .NET で PowerPoint のイベントを処理する方法
254009 [INFO] ダウンロード可能な PowerPoint 2000 のイベント デモンストレーション
303717 Visual Basic .NET 2002 または Visual Basic .NET 2003 でオートメーションを使用して PowerPoint 2002 プレゼンテーションまたは Office PowerPoint 2003 プレゼンテーションの作成および表示を行う方法
823996 [OFF2003] [PRB] Visual Studio .NET で Office タイプ ライブラリを参照すると PIA が見つからない
先頭に戻る
powerpoint vb net event power point connection
プロパティ

文書番号:824021 - 最終更新日: 01/30/2006 07:30:00 - リビジョン: 1.1

  • Microsoft Office PowerPoint 2003
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • kbhowtomaster kbautomation KB824021
フィードバック