Этот пример показывает вам, как работать с и создать макросы из, функции, которые имеют вводы и выводы переменной длины.
Проверьте, что вы соответствовали всему MATLAB® Compiler™ Excel® целевые требования. Для получения дополнительной информации смотрите MATLAB Compiler для Дополнительных Необходимых условий Microsoft Excel.
Проверьте, что у вас есть Microsoft® Excel установлен.
Укажите mwcomutil.dll
на целевой машине.
В системном командном окне перейдите к
(matlabroot представляет местоположение MATLAB или MATLAB Runtime в вашей системе), и запустите следующую команду: matlabroot
\bin\win64
mwregsvr mwcomutil.dll
У конечных пользователей должна быть установка MATLAB Runtime, чтобы запустить дополнение. Для получения дополнительной информации смотрите Установку и Сконфигурируйте MATLAB Runtime (MATLAB Compiler SDK).
Для тестирования можно использовать установку MATLAB вместо MATLAB Runtime.
Скопируйте xlmulti
папка в качестве примера, которая поставляется с MATLAB к вашей папке работы:
copyfile(fullfile(matlabroot,'toolbox','matlabxl','examples','xlmulti'),'xlmulti')
В командной строке MATLAB перейдите к новому xlmulti
папка в вашей папке работы.
Исследуйте myplot
, myprimes
, и mysum
функции.
myplot
берет один целочисленный вход и строит график от 1 до того номера.
function myplot(x)
plot(1:x)
myprimes
берет один целочисленный вход n
и возвращает все простые числа, меньше чем или равные n
.
function p = primes(n) if length(n)~=1, error('N must be a scalar'); end if n < 2, p = zeros(1,0); return, end p = 1:2:n; q = length(p); p(1) = 2; for k = 3:2:sqrt(n) if p((k+1)/2) p(((k*k+1)/2):k:q) = 0; end end p = p(p>0);
mysum
берет вход varargin
из типа integer
, добавляют все числа и возвращают результат.
function y = mysum(varargin)
y = sum([varargin{:}])
Файл Microsoft Excel xlmulti.xls
демонстрирует эти функции несколькими способами.
Создайте дополнение Excel с приложением Library Compiler или compiler.build.excelAddIn
использование следующей информации:
Поле | Значение |
---|---|
Имя библиотеки | xlmulti |
ClassName | xlmulticlass |
Файлы, чтобы скомпилировать | myplot.m
myprimes.m
mysum.m |
Например, если вы используете compiler.build.excelAddIn
Ввод:
buildResults = compiler.build.excelAddIn(["myplot.m","myprimes.m","mysum.m"], ... 'AddInName','xlmulti', ... 'ClassName','xlmulticlass', ... 'GenerateVisualBasicFile','on');
Для получения дополнительной информации см. инструкции в Create Дополнение Excel из MATLAB.
Запустите Microsoft Excel в своей системе.
Откройте файл xlmulti.xls
.
Пример появляется как показано:
Примечание
Если подсказка Excel говорит, что этот файл содержит макросы, нажмите Enable Macros, чтобы запустить этот пример.
Вызывать функциональный myplot
со значением 4, сделайте A7 (=myplot(4)
) активная ячейка. Нажмите F2 и затем Войдите.
Эта процедура строит график от 1 до 4 в Графическом окне MATLAB. Этой диаграммой можно управлять так же к способу, которым можно было бы управлять фигурой в MATLAB. Некоторая функциональность, такая как способность изменить стиль линии или окрасить, не доступна.
Ячейка вызова содержит 0, потому что функция не возвращает значение.
Следующий рисунок вызывает функциональный mysum
четырьмя различными способами:
Первое (ячейка A14) принимает значения 1 - 10, добавляет их и возвращает результат 55 (=mysum(1,2,3,4,5,6,7,8,9,10)
).
Второе (ячейка A19) берет объект области значений, который является областью значений ячеек со значениями 1 - 10, добавляет их и возвращает результат 55 (=mysum(B19:K19)
).
Третье (ячейка A24) берет несколько объектов области значений, добавляет их и возвращает результат 120 (=mysum(B24:K24,B25:L25,B26:D26)
). Этот рисунок демонстрирует, что области значений не должны быть одного размера и что всем ячейкам не нужно значение.
Четвертое (ячейка A30) берет комбинацию объекта области значений и явным образом объявленных стоимостей, добавляет их и возвращает результат 16 (=mysum(10,B30:D30)
).
Этот рисунок запускается, когда файл Excel открыт. Чтобы повторно активировать рисунок, активируйте соответствующую ячейку, затем нажмите, F2, сопровождаемый, Входят.
На следующем рисунке, макро-myprimes
вызывает функциональный myprimes.m
с начальным значением 10 в ячейке A42. Функция возвращает все простые числа меньше чем 10 в ячейки B42 через E42.
Выполнить макрос, из основного окна Excel (не Visual Basic® Редактор), открытый диалоговое окно Macro путем нажатия клавиш Alt и F8 одновременно, или путем выбора Tools> Macro> Macros.
Выберите myprimes
из списка и нажимают Run.
Эта функция автоматически изменяет размер, если возвращенный выходной параметр больше, чем выходной указанный диапазон. Измените значение в ячейке A42 к номеру, больше, чем 10. Затем повторно выполните макрос. Выход возвращает все простые числа меньше, чем номер, который вы ввели в ячейке A42.
От вкладки Developer нажмите Visual Basic или нажмите ALT +F11, чтобы открыть Visual Basic Editor. В более старых версиях Excel это может быть расположено под Tools> Macro> Visual Basic Editor.
В окне Project - VBAProject дважды кликните, чтобы расширить VBAProject (xlmulti.xls)
.
Расширьте Modules
папка и дважды кликает Module1
модуль. Это открывает окно VB Code с кодом для этого проекта.
libraryCompiler
(MATLAB Compiler SDK) | compiler.build.excelAddIn
| deploytool
(MATLAB Compiler SDK)