このチュートリアルでは、PowerPoint を自動化するカスタム作業ウィンドウの作成方法について説明します。 ここで作成するカスタム作業ウィンドウは、ユーザーがカスタム作業ウィンドウ内の MonthCalendar をクリックしたときに、日付をスライドに挿入します。
対象: このトピックの情報は、Excel 2007 と Excel 2010、InfoPath 2007 と InfoPath 2010、Outlook 2007 と Outlook 2010、PowerPoint 2007 と PowerPoint 2010、および Word 2007 と Word 2010 のアプリケーション レベルのプロジェクトに適用されます。詳細については、「Office アプリケーションおよびプロジェクト タイプ別の使用可能な機能」を参照してください。
このチュートリアルでは PowerPoint を使用しますが、ここで説明する概念は上記のすべてのアプリケーションに該当します。
このチュートリアルでは、次の作業について説明します。
カスタム作業ウィンドウのユーザー インターフェイスのデザイン
カスタム作業ウィンドウによる PowerPoint の自動化
PowerPoint でのカスタム作業ウィンドウの表示
メモ |
|---|
次の手順で参照している Visual Studio ユーザー インターフェイス要素の一部は、お使いのコンピューターでは名前や場所が異なる場合があります。 これらの要素は、使用する Visual Studio のエディションとその設定によって決まります。 詳細については、「設定の操作」を参照してください。 |
このチュートリアルを実行するには、次のコンポーネントが必要です。
-
Microsoft Office 開発者ツールを含むエディションの Visual Studio 2010。 詳細については、「Office ソリューションを開発できるようにコンピューターを構成する」を参照してください。
-
Microsoft Office PowerPoint 2007 または Microsoft PowerPoint 2010
まず、PowerPoint 用のアドイン プロジェクトを作成します。
新しいプロジェクトを作成するには
-
PowerPoint アドイン プロジェクト テンプレートを使用して、MyAddIn という名前の PowerPoint アドイン プロジェクトを作成します。 詳細については、「方法: Visual Studio で Office プロジェクトを作成する」を参照してください。
Visual Studio によって、ThisAddIn.cs コード ファイルまたは ThisAddIn.vb コード ファイルが開き、ソリューション エクスプローラーに MyAddIn プロジェクトが追加されます。
カスタム作業ウィンドウにはビジュアルなデザイナーはありませんが、レイアウトを指定してユーザー コントロールをデザインできます。 このチュートリアルの後半で、カスタム作業ウィンドウにユーザー コントロールを追加します。
カスタム作業ウィンドウのユーザー インターフェイスをデザインするには
-
[プロジェクト] メニューの [ユーザー コントロールの追加] をクリックします。
-
[新しい項目の追加] ダイアログ ボックスで、ユーザー コントロールの名前を "MyUserControl" に変更し、[追加] をクリックします。
ユーザー コントロールがデザイナーで開きます。
-
ツールボックスの [コモン コントロール] タブから MonthCalendar コントロールをユーザー コントロールにドラッグします。
MonthCalendar コントロールがユーザー コントロールのデザイン領域よりも大きい場合は、MonthCalendar コントロールが収まるように、ユーザー コントロールのサイズを変更します。
アドインの目的は、選択された日付をアクティブなプレゼンテーションの最初のスライドに含めることです。 選択された日付が変更されるたびにそれを追加するには、コントロールの DateChanged イベントを使用します。
カスタム作業ウィンドウから PowerPoint を自動化するには
-
デザイナーの MonthCalendar コントロールをダブルクリックします。
MyUserControl.cs ファイルまたは MyUserControl.vb ファイルが開き、DateChanged イベントのイベント ハンドラーが作成されます。
-
ファイルの先頭に次のコードを追加します。 このコードは、Microsoft.Office.Core 名前空間および Microsoft.Office.Interop.PowerPoint 名前空間のエイリアスを作成します。
Visual BasicImports Office = Microsoft.Office.Core Imports PowerPoint = Microsoft.Office.Interop.PowerPoint
C#using Office = Microsoft.Office.Core; using PowerPoint = Microsoft.Office.Interop.PowerPoint;
-
MyUserControl クラスに次のコードを追加します。 このコードは、Shape オブジェクトを MyUserControl のメンバーとして宣言します。 次の手順では、この Shape を使用して、アクティブなプレゼンテーションのスライドにテキスト ボックスを追加します。
Visual BasicPrivate TextBox As PowerPoint.Shape
C#private PowerPoint.Shape textbox; -
monthCalendar1_DateChanged イベント ハンドラーを次のコードで置き換えます。 このコードは、アクティブなプレゼンテーションの最初のスライドにテキスト ボックスを追加し、次に、現在選択されている日付をそのテキスト ボックスに追加します。 また、このコードは Globals.ThisAddIn オブジェクトを使用して PowerPoint のオブジェクト モデルにアクセスします。
Visual BasicPrivate Sub MonthCalendar1_DateChanged( _ ByVal sender As System.Object, _ ByVal e As System.Windows.Forms.DateRangeEventArgs) _ Handles MonthCalendar1.DateChanged Try If TextBox IsNot Nothing Then TextBox.Delete() End If Dim Slide As PowerPoint.Slide Slide = Globals.ThisAddIn.Application.ActivePresentation.Slides(1) TextBox = Slide.Shapes.AddTextbox( _ Office.MsoTextOrientation.msoTextOrientationHorizontal, _ 50, 100, 600, 50) TextBox.TextFrame.TextRange.Text = e.Start.ToLongDateString() TextBox.TextFrame.TextRange.Font.Size = 48 TextBox.TextFrame.TextRange.Font.Color.RGB = _ System.Drawing.Color.DarkViolet.ToArgb() Catch ex As Exception System.Windows.Forms.MessageBox.Show(ex.ToString()) End Try End Sub
C#private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e) { try { if (textbox != null) { textbox.Delete(); } PowerPoint.Slide slide = Globals.ThisAddIn.Application.ActivePresentation.Slides[1]; textbox = slide.Shapes.AddTextbox( Office.MsoTextOrientation.msoTextOrientationHorizontal, 50, 100, 600, 50); textbox.TextFrame.TextRange.Text = e.Start.ToLongDateString(); textbox.TextFrame.TextRange.Font.Size = 48; textbox.TextFrame.TextRange.Font.Color.RGB = Color.DarkViolet.ToArgb(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
-
ソリューション エクスプローラーで、MyAddIn プロジェクトを右クリックし、[ビルド] をクリックします。 エラーを生じることなくプロジェクトがビルドされることを確認します。
アドインの起動時にカスタム作業ウィンドウを表示するには、アドインの Startup イベント ハンドラーの作業ウィンドウにユーザー コントロールを追加します。
カスタム作業ウィンドウを表示するには
-
ソリューション エクスプローラーで、PowerPoint を展開します。
-
ThisAddIn.cs または ThisAddIn.vb を右クリックし、[コードの表示] をクリックします。
-
ThisAddIn クラスに次のコードを追加します。 このコードでは、MyUserControl および CustomTaskPane のインスタンスを ThisAddIn クラスのメンバーとして宣言しています。
Visual BasicPrivate myUserControl1 As MyUserControl Private myCustomTaskPane As Microsoft.Office.Tools.CustomTaskPane
C#private MyUserControl myUserControl1; private Microsoft.Office.Tools.CustomTaskPane myCustomTaskPane;
-
ThisAddIn_Startup イベント ハンドラーを次のコードで置き換えます。 このコードでは、MyUserControl オブジェクトを CustomTaskPanes コレクションに追加することにより、新しい CustomTaskPane を作成します。 また、このコードではカスタム作業ウィンドウを表示します。
Visual BasicPrivate Sub ThisAddIn_Startup(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles Me.Startup myUserControl1 = New MyUserControl myCustomTaskPane = Me.CustomTaskPanes.Add(myUserControl1, "Calendar") myCustomTaskPane.Visible = True End Sub
C#private void ThisAddIn_Startup(object sender, System.EventArgs e) { myUserControl1 = new MyUserControl(); myCustomTaskPane = this.CustomTaskPanes.Add(myUserControl1, "Calendar"); myCustomTaskPane.Visible = true; }
プロジェクトを実行すると、PowerPoint が開き、アドインによりカスタム作業ウィンドウが表示されます。 MonthCalendar コントロールをクリックし、コードをテストします。
アドインをテストするには
-
F5 キーを押してプロジェクトを実行します。
-
カスタム作業ウィンドウが表示されていることを確認します。
-
作業ウィンドウの MonthCalendar コントロールで日付をクリックします。
アクティブなプレゼンテーションの最初のスライドに日付が挿入されます。
カスタム作業ウィンドウの作成方法の詳細については、以下のトピックを参照してください。
-
別のアプリケーションのアドインにカスタム作業ウィンドウを作成します。 カスタム作業ウィンドウをサポートするアプリケーションの詳細については、「カスタム作業ウィンドウの概要」を参照してください。
-
カスタム作業ウィンドウの表示/非表示の切り替えに使用できるリボン ボタンを作成する。 詳細については、「チュートリアル : カスタム作業ウィンドウとリボン ボタンの同期」を参照してください。
-
ユーザーが Outlook で電子メール メッセージを開くたびにカスタム作業ウィンドウを作成する。 詳細については、「チュートリアル : Outlook で電子メール メッセージと共にカスタム作業ウィンドウを表示する」を参照してください。
メモ