Мне нужно манипулировать средой VBA приложения из C# addin, чтобы я мог добавлять модули, обработчики событий и т. Д. В документы, созданные аддином.Манипулировать средой VBA из C# .Net (VS2008)
Я делал это раньше в VB.Net, но не вижу, как добраться до объекта IDE на C#. Я просто пропустил ссылку или инструкцию по использованию? Я не вижу ничего подходящего в ссылках.
В VB.Net У меня есть ссылка на Microsoft.VisualBasic и я сделал это:
Imports System
Imports System.Collections.Generic
Imports System.Collections.ObjectModel
Public Module VBA
Private m_VBEnv As VBIDE.VBE
Private m_dlg As AddInDialog
Private Structure EventHandler
Public objectName As String
Public eventName As String
Public action As String
End Structure
Private m_handlers As New Collection
Public Function InitVBA(ByVal app As PBObjLib.Application, ByVal dlg As AddInDialog, ByVal scrWidth As Integer, ByVal scrHeight As Integer) As Boolean
InitVBA = False
Try
m_dlg = dlg
m_VBEnv = DirectCast(app.VBE, VBIDE.VBE)
m_VBEnv.MainWindow.Height = 480
m_VBEnv.MainWindow.Width = 640
m_VBEnv.MainWindow.Left = (scrWidth - m_VBEnv.MainWindow.Width)
m_VBEnv.MainWindow.Top = ((scrHeight - m_VBEnv.MainWindow.Height) - 50)
m_VBEnv.MainWindow.WindowState = VBIDE.vbext_WindowState.vbext_ws_Minimize ' .vbext_ws_Normal
HideVBWindow()
InitVBA = True
Catch e As Exception
dlg.LogMessage(AddInDialog.LogLevel.Err, "Failed to initialise VBA: " & e.Message)
End Try
End Function
...
End Module
Я добавил ссылку на Microsoft.VisualBasic моей C#, но он не признает VBIDE.VBE.
Также, как бы я сделал бит DirectCast в C#. Это просто актерский состав?
Любые предложения?