exponenta event banner

Создание макросов из функций 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 со значением 4. Для выполнения функции выполните A7 (=myplot(4)) активной соты. Нажмите F2, а затем Enter.

Эта процедура отображает линию от 1 до 4 в окне MATLAB ® Figure. Этим изображением можно манипулировать аналогично тому, как можно манипулировать фигурой в 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 Макрос

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

Для выполнения макроса в главном окне Excel (а не в редакторе Visual Basic ®) откройте диалоговое окно «Макрос», одновременно нажав клавиши Alt и F8 или выбрав меню «Сервис» > «Макрос» > «Макросы».

Выбрать myprimes в списке и нажмите кнопку Выполнить.

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

Проверка кода Microsoft Visual Basic (необязательно)

  1. В главном окне Microsoft Excel выберите Инструменты > Макрос > Редактор Visual Basic.

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

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

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

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