чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
GUI в XLL, Рассмотрим возможные варианты
10.03.2021 07:33:52
|
|
|
|
06.04.2021 10:18:44
Далее по теме: Пользовательская форма.
Реализация в xll возможна несколькими способами. 1. Windows Forms + .NET (С#, VB и т.д.) - самый простой и быстрый способ, сильный функционал (весь Microsoft .NET Framework в кармане). Особенности: нужны сторонние разработки/продукты - обертки .NET над C API Excel. Нужен .NET Framework. (к примеру Язык написания библиотеки XLL - .NET 2. C API Excel, в частности функция Excel 4.0 Macro: DIALOG.BOX(dialog_ref), да-да, еще с древнего 1993 года (поправьте, если запамятовал). Сейчас 2021, Excel 2016 x64 - и все работает. По сложности, времени разработки и функционалу сильно уступает первому. Особенности: Язык - Си, не нужны никакие сторонние продукты, за исключением, собственно, Excel. Вот описание для любопытных, и скрины, что удалось по быстрому набросать.
Отдельно по функционалу: есть удобная проверка (самим Excel) вводимых значение в соответствующий элемент, есть возможность установки trigger, но не на все элементы. Малый набор элементов (24 элемента), устаревший выбор папок, файлов, помним что прошло почти 30 лет. Из плюсов, можно использовать прямо "из коробки" +Возможно есть другие способы использовать C API Excel (эмуляцию использования UserForm+VBA здесь не рассматриваю) 3. Использование WinAPI - при достаточном уровне прокачки, по сложности сравним со вторым вариантом, по функционалу с первым (собственно любой GUI базируется на WinAPI, если не используется DirectX или OpenGL, что для форм - сомнительно, как микроскопом забивать гвозди). Язык: С/С++ Особенности: кроме, собственно Windows, никакие библы и фрамеворки не нужны, даже Excel. Много кода, много возможностей (перехват любого системного сообщения/события для вашей формы, и не только вашей :) - шутка ) Вот, по-быстрому написал форму, с переводом Address диапазона в AddressR1C1. Использованы элементы: BUTTON, EDIT, COMBOBOX, LISTBOX, SCROLLBAR и STATIC - поля + нарисовал прогресс-бар
Изменено:
«Бритва Оккама» или «Принцип Калашникова»?
|
|||
|
|
14.07.2021 14:42:04
Продолжим исследование...
Динамический интерфейс XLL позволяет добавлять/удалять необходимые элементы меню, подменю, форм. К примеру, добавим возможность сохранить/удалить/использовать любой числовой формат прямо в меню Excel/XLL (см. видео) (Библиотеку залил на сайт, кому нужен данный функционал - пользуйтесь.) Пойдем еще дальше... А можно ли сохранить настройки меню, и самой XLL и загружать когда необходимо? переносить с одного ПК на другой, отсылать другу? Реализуем и этот функционал (см. видео) Сохранения позволяют хранить любую информация (настройки меню, форм, внутренние данные библиотеки, данные с листа Excel, и далее... все что можно прочитать в памяти процесса ) Добавим внутреннее хранилище в самой XLL, и готово - теперь мы можем динамически загружать, сохранять, изменять и хранить любую информацию в XLL.
Изменено:
«Бритва Оккама» или «Принцип Калашникова»?
|
||||
|
|
|||