Excel и VBA — где находится базовый код функций?

Excel и VBA — где находится базовый код функций?

Мне было интересно, есть ли где-нибудь в Excel или в Интернете место, где я мог бы увидеть, как работают функции в Excel.

Идея заключается в том, что я начинаю изучать, как создавать пользовательские функции (UDF) и делать различные вещи в VBA, и подумал, что если я смогу увидеть, как на самом деле работает Excel, Sum()например, то я смогу узнать, как сделать свой код более компактным, занимающим меньше места и т. д.

В общем, где находится репозиторий того, как работают встроенные функции Excel? Он вообще доступен?

Редактировать: Я понимаю, что формулы могут быть написаны не на VBA. Это нормально - мне просто интересно, есть ли способ их увидеть, на каком бы языке они ни были написаны.

Edit2: Общая идея в том, что я изучаю C++/VBA/C# и хотел бы увидеть "официальные" функции, просто чтобы узнать, как они работают, и посмотреть, есть ли способы ускорить код. Функции OpenOffice тоже хороши!

решение1

Microsoft Excel — продукт с закрытым исходным кодом,
но, как вы указали, исходного кода альтернативы Excel тоже будет достаточно.

Вы можете изучитьисходный кодизOpenOffice Калькуляторкоторый очень похож на Microsoft Excel (см. скриншоты).

Вам не нужно устанавливать продукт. Настраница загрузки, сфокусируйтесь на разделе с надписьюИсточники захватить архив спочтовый индексрасширение.

Внутри архива загляните в файл, aoo-4.1.2\main\sc\source\core\tool\interpr4.cxx
и там, около строки 3500, вы найдете длинный caseоператор, показывающий внутренние вызовы функций для встроенных функций электронных таблиц. Это ваша отправная точка.

Затем вы можете выполнить поиск исходных файлов для реализации этих функций.

Удачи!

решение2

Вместо этого я бы настоятельно рекомендовал вам понятьлогика функций.Вы знаете, что Sumтакое а, это должно быть легко для вас, чтобы повторить. Вещи, которые вы не знаете - как а vlookupили stdevимеют какой-то видлогика- будь то чисто математические или операциональные (как transpose). Узнатькакэти работы, а затем проектируйте свой код вокруг этой логики.

Связанный контент