Создайте макросы из функций MATLAB

Создайте надстройки и макросы с одним и несколькими выходами

Базовый рабочий процесс для 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

Добавить COM-функцию в надстройку Microsoft Excel

  1. Запустите Microsoft Excel в своей системе.

  2. Откройте файл myfiles\work\xlmulti\xlmulti.xls.

    Пример появляется следующим образом:

Примечание

Если в приглашении Excel указано, что этот файл содержит макросы, нажмите Включить макросы, чтобы запустить этот пример.

Вызов myplot

Этот рисунок вызывает функцию myplot со значением 4. Чтобы выполнить функцию, сделайте A7 (=myplot(4)) активную камеру. Нажмите F2, а затем Enter.

Эта процедура строит график линии от 1 до 4 в MATLAB® Окно рисунка. Этим графиком можно манипулировать аналогично тому, как можно было бы манипулировать рисунком в MATLAB. Некоторые функциональные возможности, такие как возможность изменения стиля линии или цвета, недоступны.

Вызывающая камера содержит 0, поскольку функция не возвращает значение.

Вызовите mysum четырьмя различными способами

Этот рисунок вызывает функцию 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 Macro

На этом рисунке макрос myprimes вызывает функцию myprimes.m с начальным значением 10 в камере A42. Функция возвращает все простые числа меньше 10 к камерам с B42 по E42.

Чтобы выполнить макрос, из главного окна Excel (не Visual Basic® Редактор), откройте диалоговое окно Macro, нажав одновременно клавиши Alt и F8 или выбрав Tools > Macro > Macros.

Выберите myprimes из списка и нажатия кнопки Run.

Эта функция автоматически изменяет размер, если возвращенный вывод больше, чем заданная область значений вывода. Измените значение в камере A42 на число больше 10. Затем перезапустите макрос. Этот выход возвращает все простые числа меньше, чем число, введенное вами в камеру A42.

Смотрите Microsoft Visual Basic Code (необязательно)

  1. В главном окне Microsoft Excel выберите Tools > Macro > Visual Basic Editor.

  2. В Microsoft Visual Basic, в окне Project - VBAProject, дважды кликните, чтобы развернуть VBAProject (xlmulti.xls)

  3. Разверните Modules папка и дважды кликните Module1 модуль. Это открывает окно VB Code с кодом для этого проекта.

Для получения дополнительной информации

Дополнительные сведения о работе с аргументами переменной длины см. в разделе Программа с аргументами переменной.