【问题标题】:How to use java method in VBA如何在 VBA 中使用 java 方法
【发布时间】:2017-12-18 23:18:59
【问题描述】:

问题是如何从 VBA 中的 java 方法返回一个字符串。 例如我在java中有一个代码:

package someclass;

public class SomeClass {

    public static String someMethod(String s){
        return "this is some string: "+s;
    }

    public static void main(String[] args) {
        System.out.println(someMethod("Hello world!"));
    } 

}

现在的问题是如何在 VBA 中调用 someMethod?

【问题讨论】:

  • 不确定你在问什么,你想把这个java代码转换成VBA吗?
  • 我看到的唯一方法是创建一个使用 Java 函数的 DLL(使用 C++、VB.NET 或类似的其他方法),然后将对该 DLL 的引用添加到您的 VBA 项目并通过调用它们用作桥接器的 DLL。据我所知,VBA 和 Java 之间没有直接的桥梁。您可以使用 shell 命令从 JAR 文件的 VBA 运行一个方法,但我认为您不能在 VBA 中返回该函数。
  • 这只是一个例子。当然,在真正的 VBA 中使用特定示例是没有意义的。我在java中有加密和解密方法,所以我想在VBA中使用这个方法。
  • 我尝试使用 ikmvc (weblog.ikvm.net/2015/08/26/IKVMNET81ReleaseCandidate0.aspx) 将 jar 转换为 dll,但是当我使用 regsvr32 注册它时,我收到错误消息:模块 "\mydll.dll" 已加载但没有找到入口点 DllRegisterServer。

标签: java vba excel


【解决方案1】:

使用 Excel Java 插件 Jinx 将您的 Java 方法作为 Excel 宏调用。

详情请见https://exceljava.com

在您的示例中,您需要做的就是将 @ExcelMacro 注释添加到您的方法中,以使其可作为宏从 Excel 中调用。

package someclass;

import com.exceljava.jinx.ExcelMacro;

public class SomeClass {

    @ExcelMacro
    public static String someMethod(String s){
        return "this is some string: "+s;
    }

    public static void main(String[] args) {
        System.out.println(someMethod("Hello world!"));
    } 

}

有关使用 Jinx 在 Java 中编写 Excel 宏的更多详细信息,请参阅 https://exceljava.com/docs/macros.html

【讨论】:

    【解决方案2】:

    感谢@mschwehl 的回答(即可能的解决方案):
    stackoverflow.com/questions/11343769/

    【讨论】:

    • 如果相同则关闭为重复。请不要复制粘贴整个答案
    • 嗨@SurajRao,对不起,我不知道这是被禁止的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-02
    • 2011-04-06
    • 2012-01-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多