2013-08-16 3 views
3

У меня есть эта УВАМожно ли вернуть строку из программы .net с помощью VBA

Dim strpath As String 
Dim this As String 
strpath = "C:\Users\johbra\Documents\Visual Studio 2010\Projects\WindowsApplication6\WindowsApplication6\bin\Debug\WindowsApplication6.exe" 
this = Shell(strpath) 

MsgBox this 

Я также эта функция в .net программе

Public Class Form1 

Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load 
    dothis() 
    Application.Exit() 

End Sub 

Function dothis() 
    Return "HI" 
End Function 
End Class 

Im пытается получить код vba, чтобы дать мне сообщение, в котором говорится «HI» .. Возможно ли это?

+0

Команда Shell может принимать другие параметры, проверять их, возможно, она решит вашу проблему. – PmanAce

+0

Линия 'Return 'HI" возвращает текст обратно к вызываемой функции, а не к вызывающей программе приложения. – bendataclear

+0

Также 'Shell (strpath)' возвращает число (идентификатор идентификатора вновь запущенного процесса iirc) – bendataclear

ответ

3

Наиболее общепринятый и надежный способ вызова кода .NET из VBA является не подвергать класс .NET как COM-класса (без дополнительной нужен код, просто отметьте соответствующий флажок в свойствах проекта), а затем добавьте ссылку COM-класса в проект VBA, как и любой другой класс COM, и вызовите функцию.

Here's a guide on how exactly this is done.

Пожалуйста, дайте мне знать, если вам нужно больше информации о том, как это сделать.

0

Я думаю, вам нужно попробовать это с параметрами командной строки.

Как:

Dim CommandLineArgs As System.Collections.ObjectModel.ReadOnlyCollection(Of String) = My.Application.CommandLineArgs 

    For i As Integer = 0 To CommandLineArgs.Count - 1 
     MessageBox.Show(CommandLineArgs(i)) 
    Next 

Чтобы передать параметры обратно в сценарий VBA;

  Console.WriteLine("Message") 

Может поймать исход консоли в коде VBA ...

+1

не будет отображаться в ящике сообщений внутри программы .net ... Я пытаюсь вернуть строку в код vba. – user867621

Смежные вопросы