逐步解說:在 Visual Basic 專案中呼叫 VBA 的程式碼
更新:2007 年 11 月
適用於 |
---|
本主題中的資訊僅適用於指定的 Visual Studio Tools for Office 專案和 Microsoft Office 版本。 專案類型
Microsoft Office 版本
如需詳細資訊,請參閱依應用程式和專案類型提供的功能。 |
本逐步解說示範如何從文件中的 Visual Basic for Applications (VBA) 程式碼,呼叫 Microsoft Office Word 2007 之文件層級自訂中的方法。這個程序牽涉三個基本步驟:將方法加入至 ThisDocument 主項目類別 (Class)、將方法公開 (Expose) 至 VBA 程式碼,然後從文件中的 VBA 程式碼呼叫此方法。
雖然這個逐步解說特地使用 Word,但本逐步解說所示範的概念同樣適用於 Microsoft Office Excel 2007 的文件層級專案。
此逐步解說會說明以下工作:
建立包含 VBA 程式碼的文件。
使用 Word 的信任中心來信任文件的位置。
將方法加入至 ThisDocument 主項目類別。
將方法公開至 VBA 程式碼。
從 VBA 程式碼呼叫方法。
注意事項: |
---|
在下列指示的某些 Visual Studio 使用者介面項目中,您的電腦可能會顯示不同的名稱或位置:您所擁有的 Visual Studio 版本和使用的設定決定了這些項目。如需詳細資訊,請參閱 Visual Studio 設定。 |
必要條件
您需要下列元件才能完成此逐步解說:
Visual Studio Tools for Office (Visual Studio 2008 Professional 和 Visual Studio Team System 的選擇性元件)。
Microsoft Office Word 2007
根據預設會隨所列出的 Visual Studio 版本安裝 Visual Studio Tools for Office。若要查看是否已安裝,請參閱 安裝 Visual Studio Tools for Office。
建立包含 VBA 程式碼的文件
第一個步驟是建立已啟用巨集的文件,該文件包含簡單 VBA 巨集。文件必須先包含 VBA 專案,您才能根據該文件建立 Visual Studio 專案。否則,Visual Studio Tools for Office 無法修改 VBA 專案,以便讓 VBA 程式碼能夠呼叫 Visual Studio Tools for Office 組件。
如果您已經有包含想使用之 VBA 程式碼的文件,則可略過這個步驟。
若要建立包含 VBA 程式碼的文件
啟動 Word 2007。
使用 DocumentWithVBA 這個名稱,將現用文件儲存為 Word [啟用巨集的文件 (*.docm)]。將它儲存在方便取用的位置,例如桌面。
按一下 [功能區] 上的 [開發人員] 索引標籤。
注意事項: 如果 [開發人員] 索引標籤沒有顯示,您必須先使其顯示。如需詳細資訊,請參閱 HOW TO:在功能區顯示開發人員索引標籤。
在 [程式碼] 群組中,按一下 [Visual Basic]。
Visual Basic 編輯器隨即開啟。
按兩下 [專案] 視窗中的 [ThisDocument]。
ThisDocument 物件的程式碼檔隨即開啟。
將下列 VBA 程式碼加入至程式碼檔案。此程式碼會定義毫無作用的簡單函式。這個函式的唯一目的在於確保 VBA 專案存在於文件中。本逐步解說中的後續步驟需要用到此函式。
Sub EmptySub() End Sub
儲存文件並結束 Word。
建立專案
您現在即可建立 Word 2007 的文件層級專案,而該專案會使用您先前建立的已啟用巨集之文件。
若要建立新的專案
啟動 Visual Studio。
在 [檔案] 功能表上,指向 [新增],然後按一下 [專案]。如果您的 IDE 設定為使用 Visual Basic 開發設定,請按一下 [檔案] 功能表上的 [新增專案]。
在 [專案類型] 窗格中,依序展開 [Visual Basic] 和 [Office]。
選取 [2007] 資料夾。
在 [範本] 窗格中,選取 Word 文件專案。
在 [名稱] 方塊中,輸入 CallingCodeFromVBA。
按一下 [確定]。
[Visual Studio Tools for Office 專案精靈] 便會開啟。
選取 [複製現有文件],然後在 [現有文件的完整路徑] 方塊中,指定您先前建立之 DocumentWithVBA 文件的位置。如果您是使用自己的已啟用巨集之文件,則請指定該文件的位置。
按一下 [完成]。
Visual Studio 會在設計工具中開啟 DocumentWithVBA 文件,並將 [CallingCodeFromVBA] 專案加入至 [方案總管]。
信任文件的位置
您必須先信任文件中要執行的 VBA,才能將方案中的程式碼公開至文件中的 VBA 程式碼。有幾個方式可做到這點。對於此逐步解說,是在 Word 的 [信任中心] 中信任文件的位置。
若要信任文件的位置
啟動 Word。
按一下 [Microsoft Office 按鈕] 。
按一下 [Word 選項] 按鈕。
在分類窗格中,按一下 [信任中心]。
在詳細資料窗格中,按一下 [信任中心設定]。
在分類窗格中,按一下 [信任位置]。
在詳細資料窗格中,按一下 [新增位置]。
在 [Microsoft Office 信任位置] 對話方塊中,瀏覽到含有 CallingCodeFromVBA 專案的資料夾。
選取 [此位置的子資料夾也受信任]。
按一下 [Microsoft Office 信任位置] 對話方塊中的 [確定]。
按一下 [信任中心] 對話方塊中的 [確定]。
按一下 [Word 選項] 對話方塊中的 [確定]。
結束 Word。
將方法加入至 ThisDocument 類別
目前已設定 VBA 專案,將方法加入至您可以從 VBA 程式碼呼叫的 ThisDocument 主項目類別。
若要將方法加入至 ThisDocument 類別
以滑鼠右鍵按一下 [方案總管] 中的 [ThisDocument.vb],然後按一下 [檢視程式碼]。
ThisDocument.vb 檔案會在程式碼編輯器中開啟。
將下列方法加入至 ThisDocument 類別。此方法會在文件開頭建立有兩列和兩欄的資料表。參數指定第一列中顯示的文字。稍後在本逐步解說中,您會從文件中的 VBA 程式碼呼叫此方法。
Public Sub CreateTable(ByVal firstColumnHeader As String, _ ByVal secondColumnHeader As String) Me.Paragraphs(1).Range.InsertParagraphBefore() Dim table1 As Word.Table = Me.Tables.Add(Me.Paragraphs(1).Range, 2, 2) With table1 .Style = "Table Professional" .Cell(1, 1).Range.Text = firstColumnHeader .Cell(1, 2).Range.Text = secondColumnHeader End With End Sub
建置專案。
將方法公開至 VBA 程式碼
若要將 CreateTable 方法公開至文件中的 VBA 程式碼,請將 ThisDocument 主項目的 [EnableVbaCallers] 屬性設定為 [True]。
若要將方法公開至 VBA 程式碼
按兩下 [方案總管] 中的 [ThisDocument.vb]。
DocumentWithVBA 檔案會在設計工具中開啟。
在 [屬性] 視窗中,選取 [EnableVbaCallers] 屬性,然後將值變更為 [True]。
按一下訊息中顯示的 [確定]。
建置專案。
從 VBA 程式碼呼叫方法
您現在可以從文件中的 VBA 程式碼呼叫 CreateTable 方法。
注意事項: |
---|
在這個逐步解說中,您會在偵錯專案時將 VBA 程式碼加入至文件。加入至此文件的 VBA 程式碼會在下一次建置專案時被覆寫過去,因為 Visual Studio 會使用主要專案資料夾中的文件複本來取代組建輸出資料夾中的文件。如果您要儲存 VBA 程式碼,可以將它複製到專案資料夾的文件中。如需詳細資訊,請參閱在文件層級自訂中呼叫 VBA 的程式碼。 |
若要從 VBA 程式碼呼叫方法
請按 F5 執行您的專案。
按一下 [程式開發人員] 索引標籤上 [程式碼] 群組中的 [Visual Basic]。
Visual Basic 編輯器隨即開啟。
按一下 [插入] 功能表上的 [模組]。
將下列程式碼加入至新模組。
這段程式碼會呼叫 Visual Studio Tools for Office 組件中的 CreateTable 方法。巨集會使用 ThisDocument 物件的 CallVSTOAssembly 屬性存取此方法。您於稍早的逐步解說中設定 [EnableVbaCallers] 屬性時,便已自動建立此屬性。
Sub CreateTable() Call ThisDocument.CallVSTOAssembly.CreateTable("Employee Name", "Start Date") End Sub
按下 F5 鍵。
驗證新資料表是否已加入至文件。
結束 Word 但不儲存變更。
後續步驟
您可以在這些主題中,進一步了解如何從 VBA 呼叫 Visual Studio Tools for Office 方案中的程式碼:
在 Visual C# 自訂中從 VBA 呼叫程式碼。此處理序與 Visual Basic 處理序不同。如需詳細資訊,請參閱逐步解說:在 Visual C# 專案中呼叫 VBA 的程式碼。
從 VBA 呼叫應用程式層級增益集中的程式碼。如需詳細資訊,請參閱逐步解說:在應用程式層級增益集中呼叫 VBA 的程式碼。
請參閱
工作
HOW TO:公開程式碼給 Visual Basic 專案中的 VBA
HOW TO:公開程式碼給 Visual C# 專案中的 VBA
逐步解說:在 Visual C# 專案中呼叫 VBA 的程式碼