こんにちは
素人です。
C# Excelマクロの返り値を複数受け取りたい
VBA
Public Function test0(ByRef test1 As Interior, ByRef test2 As String) As Boolean test0 = True test1 = 1 test2 = "あああ" End Function
C#
try { Microsoft.Office.Interop.Excel.Application myEX = new Microsoft.Office.Interop.Excel.Application(); Microsoft.Office.Interop.Excel.Workbook myBook = myEX.Workbooks.Open(strMacroPath); int 引数1 = 0; string 引数2 = null; bool 引数0 = myEX.Run("test0",引数1,引数2); catch (System.Exception ex) { }
こんな感じではダメなのですか?
どうしてもエラーになってます。
引数名は漢字ですか?、引数0とか引数1とか?
か、漢字でした。感じではダメなのかな。。
test1 As Interior ← ミスってました。
ByRef test1 As Integer 直し、引数も英語にでやりました。エラーはなくなったものの 戻り値は初期値のままでした。
'myEX.Run(MacroName.Trim()'で、これ’myEX.Run(MacroName.test0では?
それとExcelのマクロ、シートに記載ではないですか?標準モジュール内に記載されないと動かないと思います。
ちょっと複雑だけど、参考に https://teratail.com/questions/41982
少しだけ修正しました。 引数0は戻り値を受け取れていますが引数1や引数2は渡す前のものになってしまいます。
C# 側に 引数2 や引数3に lef を付けてもエラーになります。

回答2件
あなたの回答
tips
プレビュー