Создайте надстройку, содержащую пользовательскую функцию для использования в Excel

Поддерживаемая платформа: Windows® только.

В этом примере показано, как создать Microsoft® Excel® надстройка, содержащая пользовательскую функцию для использования в Excel. Пользовательская функция называется mymagic возвращает матрицу n на n, заполненную положительными целыми числами с равными суммами строк и столбцов.

Функция mymagic записывается в MATLAB® и упакованная как надстройка Excel с помощью приложения Library Compiler в MATLAB Compiler™.

Надстройку можно установить на компьютере, работающем под управлением Excel, с помощью установщика, сгенерированного приложением Library Compiler.

Машина, на которой установлена надстройка, не требует установки MATLAB. Однако для этого требуется установка MATLAB Runtime. При установке надстройки на компьютер установщик, сгенерированный приложением Library Compiler, автоматически установит MATLAB Runtime.

Создайте функцию MATLAB

Создайте функцию MATLAB с именем mymagic который возвращает матрицу n на n, заполненную положительными целыми числами с равными суммами строк и столбцов. Сохраните функцию в файле с именем mymagic.m.

function y = mymagic(x)

y = magic(x)

Протестируйте функцию в командной строке MATLAB.

m = mymagic(5)
m =

    17    24     1     8    15
    23     5     7    14    16
     4     6    13    20    22
    10    12    19    21     3
    11    18    25     2     9

Создайте надстройку Excel с помощью приложения Library Compiler

  1. Напечатать libraryCompiler в командной строке MATLAB, чтобы открыть приложение Library Compiler.

  2. В TYPE разделе панели инструментов выберите надстройку Excel в качестве целевого типа.

  3. В EXPORTED FUNCTIONS разделе панели инструментов щелкните, чтобы добавить файл mymagic.m к проекту.

    • В Library information разделе приложения имя библиотеки автоматически обновляется до mymagic, имя класса обновляется на Class1, и имя метода, чтобы [y] = mymagic(x).

    • В Files installed for your end user разделе приложения автоматически отображаются файлы, установленные при установке надстройки на машину. Эти файлы включают:

      • _install.bat

      • mymagic.bas

      • mymagic.xla

      • mymagic_1_0.dll

  4. Щелкните Package, чтобы упаковать функцию MATLAB как надстройку.

    • В открывшемся Save Project окне задайте имя проекта и место, где необходимо сохранить проект. Library Compiler сохраняет ваш проект и открывает диалоговое окно Package.

    • Когда упаковочный процесс завершен, в расположении целевой папки генерируются три папки: for_redistribution, for_redistribution_files_only, и for_testing.

    • The for_redistribution папка содержит файл установщика MyAppInstaller_web.exe устанавливает надстройку и MATLAB Runtime. The for_redistribution_files_only папка содержит файлы, установленные на компьютере конечного пользователя. Это те же файлы, которые устанавливает инсталлятор. Он содержит следующие файлы:

      • _install.bat

      • GettingStarted.html

      • mymagic.bas

      • mymagic.xla

      • mymagic_1_0.dll

    Для получения дополнительной информации о папках смотрите Файлы, сгенерированные После Упаковки Функций MATLAB.

Создайте надстройку Excel используя compiler.build.excelAddIn

Примечание

Если вы уже создали надстройку Excel с помощью приложения Library Compiler, можно пропустить этот раздел. Однако, если вы хотите узнать, как создать надстройку из командного окна MATLAB с помощью программного подхода, следуйте этим инструкциям.

  1. Создайте надстройку Excel с помощью compiler.build.excelAddIn функции и mymagic.m файл, который вы написали ранее. Используйте аргументы имя-значение для генерации файлов BAS и XLA.

    buildResults = compiler.build.standaloneApplication('mymagic.m',...
        'GenerateVisualBasicFile','on');

    The compiler.build.Results buildResults объекта содержит информацию о типе сборки, сгенерированных файлах и опциях сборки.

  2. Функция генерирует следующие файлы в папке с именем mymagicexcelAddIn в вашей текущей рабочей директории:

    • dlldata.c

    • GettingStarted.html

    • mymagic.def

    • mymagic.bas

    • mymagic.rc

    • mymagic.xla

    • mymagic_1_0.dll

    • mymagic_dll.cpp

    • mymagic_idl.h

    • mymagic_idl.idl

    • mymagic_idl.tlb

    • mymagic_idl_i.c

    • mymagic_idl_p.c

    • mymagicClass_com.cpp

    • mymagicClass_com.hpp

    • mccExcludedFiles.log

    • mwcomtypes.h

    • mwcomtypes_i.c

    • mwcomtypes_p.c

    • readme.txt

    • requiredMCRProducts.txt

    • unresolvedSymbols.txt

  3. Дополнительные опции могут быть заданы при помощи одной или нескольких разделенных разделенными запятой парами аргументов имя-значение в compiler.build команда.

    • 'AddInName' - Имя сгенерированной надстройки.

    • 'AddInVersion' - Версия сгенерированного надстройки на системном уровне.

    • 'AdditionalFiles' - Пути к дополнительным файлам для включения в надстройку.

    • 'AutoDetectDataFiles' - Флаг для автоматического включения файлов данных.

    • 'ClassName' - Имя класса.

    • 'DebugBuild' - Флаг для включения отладки символов.

    • 'EmbedArchive' - Флаг для встраивания автономного архива в сгенерированный исполняемый файл.

    • 'GenerateVisualBasicFile' - Флаг для генерации Visual Basic® файл (.bas) и файл надстройки Excel (.xla).

    • 'OutputDirectory' - Путь к выходной директории, который содержит сгенерированные файлы.

    • 'Verbose' - Флаг для отображения информации о прогрессе, указывающей на выход компилятора во время процесса сборки.

Протестируйте надстройку в Excel

Примечание

Возможно, вам придется включить Trust access to the VBA project object model в Excel, чтобы надстройка работала.

Добавьте надстройку в Excel

  1. Откройте Microsoft Excel.

  2. Перейдите на вкладку File, щелкните Options и выберите категорию Add-Ins.

  3. В Manage окне щелкните Excel Add-ins и выберите Go. Откроется диалоговое окно Add-Ins.

  4. Нажмите Browse и найдите надстройку mymagic.xla в for_redistribution_files_only папка.

  5. Отобразится запрос на копирование mymagic.xla в папку Addins, связанную с вашим именем пользователя. Можно принять решение скопировать надстройку или запустить ее из for_redistribution_files_only папка. В данном примере выберите, YES. Надстройка копируется и добавляется в книгу.

  6. Нажмите OK, чтобы закрыть диалоговое окно Add-Ins

Тестируйте надстройку

  1. Выберите сетку 3х3 камер в книге Excel.

  2. Введите следующую пользовательскую функцию в строке формул:

    =mymagic(3)
    Когда вы вводите my в строке формул, вы видите mymagic отображение в качестве пользовательской функции в Excel.

  3. Нажмите Ctrl + Shift + Enter на клавиатуре.

    В камерах отображается следующий выход:

    8	1	6
    3	5	7
    4	9	2