VBA で次の Excel-DNA-Method を呼び出そうとすると、サイズ 1 の配列しか得られません (65536 行の後、配列は実際の配列サイズ - 65537 にサイズ変更されているようです)。シート内のメソッドを配列関数として呼び出すと、すべてが機能します。
[ExcelFunction(Description = "Example", Name = "Example", HelpTopic = "")]
public static object[] example() {
object[] ret = new object[65537];
return ret;
}
私は Excel 2007 を使用しています。シートは xlsm-Worksheet です。このような 2 次元配列を使用すると、すべて正常に動作します。
[ExcelFunction(Description = "Example", Name = "Example", HelpTopic = "")]
public static object[,] example() {
object[,] ret = new object[65537,1];
return ret;
}
ただし、二次元配列を逆に使用する場合と同じように
[ExcelFunction(Description = "Example", Name = "Example", HelpTopic = "")]
public static object[,] example() {
object[,] ret = new object[1,65537];
return ret;
}
誰かがこれを回避する方法を知っていますか?
VBAで同じことをするとうまくいきます
Function test()
Dim ret As Variant
ReDim ret(65536)
test = ret
End Function
Sub testSub()
Dim output
output = Application.Run("test")
End Sub
出力の次元は 65537 (インデックスは 0 から始まります) で、65537 より大きい数値も機能します。