Я изменяю существующий XLL, написанный на C ++. Исходный код всегда создает массив из 1 столбца в качестве вывода. Я заинтересован в том, чтобы сделать вывод более гибким (скажем, в виде ряда ячеек, а не столбца ячеек). При использовании этой функции массива в Excel она вводится как функция массива (то есть пользователь вводит ее, чтобы покрыть массив ячеек, а не только одну ячейку).
Я знаю, как вернуть массив определенных размеров. Но то, что я не знаю, это:
В коде C ++, как я могу получить размеры массива ячеек, которые пользователь определил при вызове этой функции? Если у меня есть эта информация, я могу заполнять ее по строкам или столбцам, в зависимости от того, как пользователь определил свой принимающий массив.
Спасибо!
Вы хотите использовать функцию обратного вызова xlfCaller.
Пример в документации XLW:
http://sourceforge.net/p/xlw/mailman/xlw-users/?viewmonth=200808
Но вам нужно будет добавить проверку безопасности (как предложено в комментариях к ветке), потому что ваш вызов функции вызывается из других мест (например, VBA, мастер функций).