Phi*_*ZXX 7 excel vba scala dllimport
我知道使用C++可以创建包含某些功能的DLL文件,然后可以将其导入Excel(例如通过VBA).我们来看看下面的C++函数
double __stdcall square_it(double &x)
{
return x*x;
}
Run Code Online (Sandbox Code Playgroud)
我们假设它包含在square.dll中,以便我们可以使用以下VBA导入
Declare PtrSafe Function square_it Lib "square.dll" (ByRef x As Double) As Double
Private Sub TestSub()
MsgBox square_it(4.5)
End Sub
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:是否可以在Scala中编写函数,然后以类似的方式从VBA调用它?
Scala 与 Java 在这里不会有任何不同,并查看 Java 问题,例如您可以在 VB.net 程序中使用 Java 库吗?以及从 VBA/VBScript/Visual Basic Classic 调用 Java 库 (JAR),没有好的解决方案可以在 VBA/Java 或 VBA/Scala 中获得与 VBA/C++ 相同级别的集成。
您始终可以使用任何外部通道在 VBA 和 Scala 之间进行通信,例如 shell、文件系统,甚至 http,但这不会像 VBA/C++ 示例那样简单和高效。
通过 shell 进行通信的情况如下:
在 example.scala 中:
object Example {
def main(args: Array[String]): Unit = {
val d = args.head.toDouble
println(d * d)
}
}
Run Code Online (Sandbox Code Playgroud)
在 example.vba 中:
Module Example
Sub Main()
Dim command As String
command = "scala /path/to/example.scala 123"
Range("A1").Value = CreateObject("WScript.Shell").Exec(command).StdOut.ReadAll
End Sub
End Module
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
710 次 |
最近记录: |