這是我前一陣子研究的結果
跟大家分享一下
首先要會寫VBA(Visual Basic Application)
不會的請自己研究這邊就不多做敘述
這裡以Excel VBA為例
當寫好VBA module後
在檔案→匯出檔案中將VBA程式碼匯出
將來會使用到
假設匯出的檔案為Module1.bas
Module1.bas的程式碼
===================
Public Sub f()
MsgBox ("test")
End Sub
===================
就是一個簡單呼叫一個messagebox上面顯示"test"
之後開啟Visual Studio.NET
在檔案→新增→專案中選擇Visual Basic專案→Windows應用程式
設定好名字後按下[確定]
接著在Form1上面新增一個button
在button上面點兩下即可進入程式碼編輯畫面中
在右側方案總管→參考上按右鍵 選擇加入參考
接著選擇COM分頁找到Microsoft Office 11.0 Object Library
按選取之後按下[確定]
此時參考中會加入Excel的選項
接著在程式碼的最上端加入
Imports Microsoft.Office.Interop.Excel
在Button1_Click事件中寫下列程式碼
=================================
Dim excel As New Application
Dim wb As Workbook
excel.Workbooks.Add()
wb = excel.Workbooks.Item(1)
Dim excel_module As Microsoft.Vbe.Interop.VBComponent
Try
excel_module = wb.VBProject.VBComponents.Add(Microsoft.Vbe.Interop.vbext_ComponentType.vbext_ct_StdModule)
excel_module.CodeModule.AddFromFile(System.Windows.Forms.Application.StartupPath + "\Module1.bas")
Catch exc As Exception
End Try
excel.Run("f")
excel.Workbooks.Close()
=================================
System.Windows.Forms.Application.StartupPath代表程式執行路徑
我是將Module1.bas放在同一路徑下
這裡可以自己更動
而excel.Run("f")代表執行f()這個function
如果function內有帶參數的話就用逗點隔開
形式如excel.Run("f",參數一,參數二,...)
這樣之後便可以執行檔案
按下button後就可以看到會開啟一個excel並且出現msgbox
訂閱:
張貼留言 (Atom)
0 Response to "VB.NET與VBA的連結"
張貼留言
歡迎留下您的回應