逐步解說:運用自訂工作窗格自動化應用程式

此逐步解說示範如何建立會自動化 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 方案](bb398242\(v=vs.100\).md)。
  • Microsoft Office PowerPoint 2007 或 Microsoft PowerPoint 2010。

建立增益集專案

第一個步驟是建立 PowerPoint 的增益集專案。

若要建立新的專案

  • 使用 [PowerPoint 增益集] 專案範本建立名為 MyAddIn 的 PowerPoint 增益集專案。 如需詳細資訊,請參閱 HOW TO:在 Visual Studio 中建立 Office 專案

    Visual Studio 會開啟 ThisAddIn.cs 或 ThisAddIn.vb 程式碼檔案,並將 [MyAddIn] 專案加入至 [方案總管]。

設計自訂工作窗格的使用者介面

自訂工作窗格沒有視覺化的設計工具,但是您可以根據需要設計使用者控制項的版面配置。 在此逐步解說後面,您會在自訂工作窗格中加入使用者控制項。

若要設計自訂工作窗格的使用者介面

  1. 在 [專案] 功能表上,按一下 [加入使用者控制項]。

  2. 在 [加入新項目] 對話方塊中,將使用者控制項的名稱改成 MyUserControl,然後按一下 [加入]。

    使用者控制項隨即在設計工具中開啟。

  3. 從 [工具箱] 的 [通用控制項] 索引標籤,拖曳 [MonthCalendar] 控制項至使用者控制項。

    如果 [MonthCalendar] 控制項大於使用者控制項的設計介面,請配合 [MonthCalendar] 控制項調整使用者控制項的大小。

從自訂工作窗格自動化 PowerPoint

增益集的用途是要在現用簡報的第一張投影片上放入選取的日期。 請使用控制項的 DateChanged 事件,在選取的日期變更時加入該日期。

若要從自訂工作窗格自動化 PowerPoint

  1. 在設計工具中,按兩下 MonthCalendar 控制項。

    MyUserControl.cs 或 MyUserControl.vb 檔案隨即開啟,而且系統也會建立 DateChanged 事件的事件處理常式。

  2. 將下列程式碼加入至檔案的頂端。 此程式碼會建立 Microsoft.Office.CoreMicrosoft.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;
    
  3. 將下列程式碼加入 MyUserControl 類別。 此程式碼會將 Shape 物件宣告為 MyUserControl 的成員。 在下列步驟中,您會使用此 Shape,在現用簡報的投影片中加入文字方塊。

    Private TextBox As PowerPoint.Shape
    
    private PowerPoint.Shape textbox;
    
  4. 以下列程式碼取代 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());
        }
    }
    
  5. 在 [方案總管] 中,以滑鼠右鍵按一下 [MyAddIn] 專案,然後按一下 [建置]。 接著驗證專案建置無誤。

顯示自訂工作窗格

若要在增益集啟動時顯示自訂工作窗格,請在增益集的 Startup 事件處理常式中,將使用者控制項加入至工作窗格。

若要顯示自訂工作窗格

  1. 在 [方案總管] 中,展開 [PowerPoint]。

  2. 以滑鼠右鍵按一下 [ThisAddIn.cs] 或 [ThisAddIn.vb],並按一下 [檢視程式碼]。

  3. 將下列程式碼加入 ThisAddIn 類別。 此程式碼將 MyUserControl 和 CustomTaskPane 的執行個體宣告為 ThisAddIn 類別的成員。

    Private myUserControl1 As MyUserControl
    Private myCustomTaskPane As Microsoft.Office.Tools.CustomTaskPane
    
    private MyUserControl myUserControl1;
    private Microsoft.Office.Tools.CustomTaskPane myCustomTaskPane;
    
  4. 以下列程式碼取代 ThisAddIn_Startup 事件處理常式。 此程式碼建立新的 CustomTaskPane,方法是將 MyUserControl 物件加入至 CustomTaskPanes 集合。 程式碼也會顯示工作窗格。

    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 控制項來測試程式碼。

若要測試增益集

  1. 請按 F5 執行您的專案。

  2. 確認自訂工作窗格是可見的。

  3. 在工作窗格上的 MonthCalendar 控制項中,按一下日期。

    現用簡報的第一張投影片中隨即會插入該日期。

後續步驟

您可以在下列主題中,進一步了解如何建立自訂工作窗格:

請參閱

工作

HOW TO:在應用程式中加入自訂工作窗格

逐步解說:使用功能區按鈕同步處理自訂工作窗格

逐步解說:在 Outlook 中的電子郵件訊息顯示自訂工作窗格

HOW TO:在 Outlook 中的電子郵件訊息顯示自訂工作窗格

概念

管理多個應用程式視窗中的自訂工作窗格

其他資源

自訂工作窗格概觀