Базовый рабочий процесс для Microsoft® Excel® надстройку и создание макросов можно найти в разделе Создание надстройки Excel из MATLAB и Интеграция надстройки и COM- Компонента с Microsoft Excel.
В этом примере показано, как работать с функциями, имеющими входные и выходные параметры переменной длины, и создавать из них макросы
myplot
принимает одно целое входа и строит график линии от 1 до этого числа.
mysum
принимает вход varargin
типа integer
, добавляет все числа и возвращает результат.
myprimes
принимает одно целое число n
и возвращает все простые числа, меньше чем или равные n
.
Файл Microsoft Excel, xlmulti.xls
, демонстрирует эти функции несколькими способами.
Для получения дополнительной информации о доступе к коду примера из продукта, смотрите Пример копирования файла.
Используйте следующую информацию во время работы с этим примером, используя инструкции в разделе Создание надстройки Excel из MATLAB:
Имя проекта | xlmulti |
Имя класса | xlmulticlass |
Файл для компиляции (в xlmulti папка myfiles\work ) | myplot.m
myprimes.m
mysum.m |
Запустите Microsoft Excel в своей системе.
Откройте файл myfiles\work\xlmulti\xlmulti.xls
.
Пример появляется следующим образом:
Примечание
Если в приглашении Excel указано, что этот файл содержит макросы, нажмите Включить макросы, чтобы запустить этот пример.
Этот рисунок вызывает функцию myplot
со значением 4. Чтобы выполнить функцию, сделайте A7 (=myplot(4)
) активную камеру. Нажмите F2, а затем Enter.
Эта процедура строит график линии от 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 затем Enter.
На этом рисунке макрос myprimes
вызывает функцию myprimes.m
с начальным значением 10 в камере A42. Функция возвращает все простые числа меньше 10 к камерам с B42 по E42.
Чтобы выполнить макрос, из главного окна Excel (не Visual Basic® Редактор), откройте диалоговое окно Macro, нажав одновременно клавиши Alt и F8 или выбрав Tools > Macro > Macros.
Выберите myprimes
из списка и нажатия кнопки Run.
Эта функция автоматически изменяет размер, если возвращенный вывод больше, чем заданная область значений вывода. Измените значение в камере A42 на число больше 10. Затем перезапустите макрос. Этот выход возвращает все простые числа меньше, чем число, введенное вами в камеру A42.
В главном окне Microsoft Excel выберите Tools > Macro > Visual Basic Editor.
В Microsoft Visual Basic, в окне Project - VBAProject, дважды кликните, чтобы развернуть VBAProject (xlmulti.xls)
Разверните Modules
папка и дважды кликните Module1
модуль. Это открывает окно VB Code с кодом для этого проекта.
Дополнительные сведения о работе с аргументами переменной длины см. в разделе Программа с аргументами переменной.