チュートリアル : カスタム作業ウィンドウからのアプリケーションの自動化
このチュートリアルでは、PowerPoint を自動化するカスタム作業ウィンドウの作成方法について説明します。ここで作成するカスタム作業ウィンドウは、ユーザーがカスタム作業ウィンドウ内の MonthCalendar をクリックしたときに、日付をスライドに挿入します。
対象: このトピックの情報は、Outlook 2013 と Outlook 2010 のアプリケーション レベルのプロジェクトに適用されます。詳細については、「Office アプリケーションおよびプロジェクト タイプ別の使用可能な機能」を参照してください。
このチュートリアルでは PowerPoint を使用しますが、ここで説明する概念は上記のすべてのアプリケーションに該当します。
このチュートリアルでは、次の作業について説明します。
カスタム作業ウィンドウのユーザー インターフェイスのデザイン
カスタム作業ウィンドウによる PowerPoint の自動化
PowerPoint でのカスタム作業ウィンドウの表示
[!メモ]
次の手順で参照している Visual Studio ユーザー インターフェイス要素の一部は、お使いのコンピューターでは名前や場所が異なる場合があります。これらの要素は、使用する Visual Studio のエディションとその設定によって決まります。詳細については、「Visual Studio の設定」を参照してください。
必須コンポーネント
このチュートリアルを実行するには、次のコンポーネントが必要です。
-
Microsoft Office Developer Tools が含まれているエディションの Visual Studio 2012。詳細については、「[Office ソリューションを開発できるようにコンピューターを構成する](bb398242\(v=vs.110\).md)」を参照してください。
- Microsoft PowerPoint 2010または PowerPoint 2013。
アドイン プロジェクトの作成
まず、PowerPoint 用のアドイン プロジェクトを作成します。
新しいプロジェクトを作成するには
PowerPoint アドイン プロジェクト テンプレートを使用して、MyAddIn という名前の PowerPoint アドイン プロジェクトを作成します。詳細については、「方法: Visual Studio で Office プロジェクトを作成する」を参照してください。
Visual Studio によって、ThisAddIn.cs コード ファイルまたは ThisAddIn.vb コード ファイルが開き、ソリューション エクスプローラーに MyAddIn プロジェクトが追加されます。
カスタム作業ウィンドウのユーザー インターフェイスのデザイン
カスタム作業ウィンドウにはビジュアルなデザイナーはありませんが、レイアウトを指定してユーザー コントロールをデザインできます。このチュートリアルの後半で、カスタム作業ウィンドウにユーザー コントロールを追加します。
カスタム作業ウィンドウのユーザー インターフェイスをデザインするには
[プロジェクト] メニューの [ユーザー コントロールの追加] をクリックします。
[新しい項目の追加] ダイアログ ボックスで、ユーザー コントロールの名前を "MyUserControl" に変更し、[追加] をクリックします。
ユーザー コントロールがデザイナーで開きます。
ツールボックスの [コモン コントロール] タブから MonthCalendar コントロールをユーザー コントロールにドラッグします。
MonthCalendar コントロールがユーザー コントロールのデザイン領域よりも大きい場合は、MonthCalendar コントロールが収まるように、ユーザー コントロールのサイズを変更します。
カスタム作業ウィンドウによる PowerPoint の自動化
アドインの目的は、選択された日付をアクティブなプレゼンテーションの最初のスライドに含めることです。選択された日付が変更されるたびにそれを追加するには、コントロールの DateChanged イベントを使用します。
カスタム作業ウィンドウから PowerPoint を自動化するには
デザイナーの MonthCalendar コントロールをダブルクリックします。
MyUserControl.cs ファイルまたは MyUserControl.vb ファイルが開き、DateChanged イベントのイベント ハンドラーが作成されます。
ファイルの先頭に次のコードを追加します。このコードは、Microsoft.Office.Core 名前空間および Microsoft.Office.Interop.PowerPoint 名前空間のエイリアスを作成します。
Imports Office = Microsoft.Office.Core Imports PowerPoint = Microsoft.Office.Interop.PowerPoint
using Office = Microsoft.Office.Core; using PowerPoint = Microsoft.Office.Interop.PowerPoint;
MyUserControl クラスに次のコードを追加します。このコードは、Shape オブジェクトを MyUserControl のメンバーとして宣言します。次の手順では、この Shape を使用して、アクティブなプレゼンテーションのスライドにテキスト ボックスを追加します。
Private TextBox As PowerPoint.Shape
private PowerPoint.Shape textbox;
monthCalendar1_DateChanged イベント ハンドラーを次のコードで置き換えます。このコードは、アクティブなプレゼンテーションの最初のスライドにテキスト ボックスを追加し、次に、現在選択されている日付をそのテキスト ボックスに追加します。また、このコードは Globals.ThisAddIn オブジェクトを使用して PowerPoint のオブジェクト モデルにアクセスします。
Private 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
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 クラスのメンバーとして宣言しています。
Private myUserControl1 As MyUserControl Private myCustomTaskPane As Microsoft.Office.Tools.CustomTaskPane
private MyUserControl myUserControl1; private Microsoft.Office.Tools.CustomTaskPane myCustomTaskPane;
ThisAddIn_Startup イベント ハンドラーを次のコードで置き換えます。このコードでは、MyUserControl オブジェクトを CustomTaskPanes コレクションに追加することにより、新しい CustomTaskPane を作成します。また、このコードではカスタム作業ウィンドウを表示します。
Private 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
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 で電子メール メッセージと共にカスタム作業ウィンドウを表示する」を参照してください。
参照
処理手順
方法 : カスタム作業ウィンドウをアプリケーションに追加する
チュートリアル : カスタム作業ウィンドウとリボン ボタンの同期
チュートリアル : Outlook で電子メール メッセージと共にカスタム作業ウィンドウを表示する