我有一个独立的c#应用程序,它执行特定的任务(侦听TCP端口并发音通过语音合成器到达它的所有字符串)。如何让C#类对VBA程序可见,与其他“引用”对其可见的方式一样?我将不胜感激短而干净的例子。由于某种原因,我很难找到其中之一。如何在Excel VBA中使用c#类?
如果有一些特定于c#< - > vba交互的陷阱,我想知道这些。
这里是一个C#代码。我构建的是一个具有“Register for COM interop”设置的类库。 当我将生成的.tlb文件添加到VBA引用列表中时,我希望看到具有SayCom类的SayCom库有2个方法square和getCount。我没有看到。我错过了什么?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
[assembly: CLSCompliant(true)]
namespace SayCom
{
[CLSCompliant(true)]
[ComVisible(true)]
public class SayCom
{
int count;
public SayCom()
{
count = 0;
}
[ComVisible(true)]
public int square(int x)
{
++count;
return x * x;
}
[ComVisible(true)]
public int getCount()
{
return count;
}
}
}
主要问题是在VBA使用C#类。我提到在TCP/IP中发送字符串以提供一些上下文。我现在看到这可能会让人困惑。 – nsg
我已经投票表决重新开放,因为它现在很清楚你想要什么。快速提问。你遵循了这个吗? '项目设置|应用程序|组装信息|使组件COM可见(设置为ON)|构建|注册COM互操作(设置为ON)' –
我没有做零件装配信息|使装配体COM可见。我现在做了,但还没有看到课堂。我看到图书馆SayCom,但它没有任何内容。 – nsg