Как открыть файл xla
Если появилась ситуация, в которой Вы не можете открыть файл XLA_ на своем компьютере - причин может быть несколько. Первой и одновременно самой важной (встречается чаще всего) является отсутствие соответствующей аппликации обслуживающей XLA_ среди установленных на Вашем компьютере.
Самым простым способом решения этой проблемы является нахождение и скачивание соответствующей аппликации. Первая часть задания, уже выполнена, - программы для обслуживания файла XLA_ Вы найдете ниже. Теперь достаточно скачать и установить соответствующую аппликацию.
В дальнейшей части этой страницы Вы найдете другие возможные причины, вызывающие проблемы с файлами XLA_.
Программа(ы), умеющие открыть файл .XLA_
Windows
Mac OS
Возможные проблемы с файлами в формате XLA_
Отсутствие возможности открытия и работы с файлом XLA_, совсем не должен значить, что мы не имеем установленного на своем компьютере соответствующего программного обеспечения. Могут выступать другие проблемы, которые также блокируют нам возможность работы с файлом Microsoft Excel 4 For Mac Add-in. Ниже находится список возможных проблем.
- Повреждение открываемого файла XLA_.
- Ошибочные связи файла XLA_ в записях реестра.
- Случайное удаление описания расширения XLA_ из реестра Windows
- Некомплектная установка аппликации, обслуживающей формат XLA_
- Открываемый файл XLA_ инфицирован нежелательным, вредным программным обеспечением.
- На компьютере слишком мало места, чтобы открыть файл XLA_.
- Драйверы оборудования, используемого компьютером для открытия файла XLA_ неактуальные.
Если Вы уверены, что все перечисленные поводы отсутствуют в Вашем случае (или были уже исключены), файл XLA_ должен сотрудничать с Вашими программами без каких либо проблем. Если проблема с файлом XLA_ все-таки не решена, это может значить, что в этом случае появилась другая, редкая проблема с файлом XLA_. В таком случае остается только помощь специалиста.
Похожие расширения
Как связать файл с установленной программой?
Если Вы хотите связать какой-то файл с новой программой (напр. moj-plik.XLA_) Вы можете воспользоваться двумя вариантами. Первый и самый простой - это нажатие правой кнопкой мышки на избранный файл XLA_. Из открытого меню выберите опцию Выбрать программу по умолчанию", затем опцию "Пересматривать" и найти требуемую программу. Всю операцию необходимо утвердить нажатием кнопки OK.
Есть ли универсальный метод открытия неизвестных файлов?
Многие файлы содержат данные в виде текста или чисел. Возможно, что во время открытия неизвестных файлов (напр. XLA_) популярный в системе Windows простой редактор текста, которым является Notatnik позволит нам увидеть часть данных, закодированных в файле. Этот метод позволяет просмотреть содержимое многих файлов, однако не в такой форме, как программа, предназначенная для их обслуживания.
Те, кто программирует на VBA для Excel, в определенный момент задумываются над распространением своих приложений в качестве независимых файлов. Лучшая возможность для организации распространяемых файлов – это создание специальных дополнений или надстроек Excel. За время развития программы появилось несколько типов надстроек. Мы попытались собрать и систематизировать информацию для разработчиков обо всех видах, назначениях, достоинствах и недостатках надстроек Excel.
Персональная книга макросов
Описание: | хранение общих функций и процедур для персонального использования |
Требования: | нет |
Достоинства: | возможность хранения пользовательских функций для работы с данными (UDF) |
Недостатки: | сложности с тиражированием |
Для общих программ и макросов можно использовать, так называемую, личную книгу макросов – по умолчанию это файл PERSONAL.XLS (в Excel 2007-2010 PERSONAL.XLSB). Файл с данным именем создается с при записи макроса средствами Excel. Этот файл будет автоматически загружаться каждый раз при запуске Excel. Местонахождение данного файла в каталоге Windows: ПОЛЬЗОВАТЕЛЬ\Application Data\Microsoft\Excel\XLSTART. На самом деле Excel будет запускать автоматически все файлы из данного каталога, независимо от имен файлов.
В принципе, личные книги макросов можно считать надстройками Excel. В файле PERSONAL.XLS (или любом другом из стартового каталога) можно хранить общие функции и макросы, автоматизирующие часто повторяемые операции. Для выполнения каких-либо операций при старте Excel можно использовать событие Worbook_Open этого файла, либо процедуру Auto_Open в модуле кода.
XLA/XLAM
Описание: | стандартная надстройка |
Требования: | нет |
Достоинства: | возможность создания тиражируемых продуктов |
Недостатки: | слабая защита исходного кода программ. |
Надстройки с расширением xla (в версии 2007-2010 xlam) представляют собой стандартный xls-файл, который может быть открыт как невидимая в списке открытых файлов рабочая книга.
Файл надстройки обычно содержит программный код, который управляет какими-либо оперциями активной рабочей книги Excel. Теоретически, кроме модулей кода, в состав xla-файла могут быть таблицы и даже листы диаграмм, но надо понимать, что особого смысла в этих данных нет, так как нет возможности отобразить эти данные на экране стандартными средствами. На рабочих листах надстройки можно хранить, например, константы для работы кода, если по каким-либо соображениям не хочется использовать константы VBA. Данные в ячейках файла надстройки можно даже изменять во время работы, но сохранять открытый и исполняемый в данный момент файл xla в общем случае недопустимо.
Для доступа к данным рабочей книги надстройки используется объект ThisWorkbook, а для работы с активной рабочей книгой – объект ActiveWorkbook.
В надстройках имеется возможность хранить пользовательские функции для работы с данными рабочих листов (user defined function - UDF). Только надо учитывать, что в этом случае рабочий файл сохраняет ссылку (связь) на файл надстройки по абсолютному пути. Эта особенность может затруднить распространение программных продуктов.
Отладку надстроек лучше производить через xls-файл (не забывая различия между ThisWorkbook и ActiveWorkbook), а впоследствии сохранять этот файл как xla. Нектороые сложности могут в этом случае возникнуть при использовании событий Workbook_AddinInstall и Workbook_AddinUninstall, так как их невозможно эмулировать в простом файле рабочей книги. К счастью, эти события требуются крайне редко; честно говоря, мы не знаем ни одного примера их полезного использования на практике.
Подключать готовую XLA-надстройку можно через соответствующий диалог (Excel 2000-2003 Сервис \ Надстройки, Excel 2007 Кнопка Office \ Параметры Excel\ Надстройки \ Перейти).
Подключаемые надстройки прописываются в реестре Windows по адресу HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ НОМЕР_ВЕРСИИ.0 \ Excel \ Options в строковых параметрах с префиксом OPEN и порядковым номером надстройки (причем первая по порядку надстройка номера не имеет). Управляя этим ключом реестра, можно подключить / отключить надстройку через инсталляционные программы. Это, кстати, еще одна причина никогда не использовать событие Workbook_AddinInstall – очевидно, что оно не будет вызвано при изменении ключей реестра внешними программами.
Имя и описание надстройки можно задать в свойствах файла перед его сохранением в форматие xla/xlam (Excel 2000-2003 Файл \ Свойства, Excel 2007 Кнопка Office \ Подготовить \ Свойства).
Важным преимуществом надстройки XLA/XLAM вместо использования кода внутри рабочих файлов является возможность повторного использования кода VBA. Кроме того, установленные надстройки не спрашивают о наличии макросов при запуске Excel на любом уровне безопасности.
Интересная, но скорее всего бесполезная в работе информация. Надстройки XLA в Excel версии 5.0-8.0 (95-97) хранятся в скомпилированном виде. В связи с этим, там просто нет исходного текста программ в открытом или зашифрованном виде. Эта особенность приводит к невозможности декомпиляции или вскрытию кода специальными средствами. К сожалению, в последующих версиях Excel надстройки хранятся в нескомпилированном виде и легко преобразуются в доступный для изменения файл, даже будучи защищенными паролями. Microsoft рекомендует использовать для разработчиков возможности COM-DLL и средства VSTO (см. далее).
В качестве примера XLA-надстройки, можно ознакомиться с исходным кодом надстройки ExcelFin в разделе Программы.
XLS/XLA как ссылка
Описание: | библиотека кода VBA |
Требования: | нет |
Достоинства: | не требует компиляции во внешних программных продуктах |
Недостатки: | сложность распространения из-за абсолютных ссылок на файлы |
Если вы создали набор общеупотребительных функций, но не имеете возможность скомпилировать библиотеку в виде XLL или DLL-файла (см.ниже), то можно подключить любой VBA-код XLS-файла в качестве ссылки в проекте. Делается это в окне редактора кода через меню Tools \ References.
В этом случае вы также можете избавиться от повторного использования кода, но такой вариант вызывает дополнительные сложности при распространении рабочего файла, так как в проекте сохраняются абсолютные пути к ссылкам.
При использовании общего кода XLA-надстроек и ссылок к XLS-файлам важную роль играет определение методов и свойств класса Friend. Эти методы и свойства видны внутри проекта, но не во внешнем файле, использующем ссылку. Внутри одного файла определение Friend соответствует Public.
Описание: | библиотека функций рабочего листа |
Требования: | компилятор C/C++ и API-библиотека |
Достоинства: | создание наиболее производительных функций с полным встраиванием в интерфейс Excel |
Недостатки: | нет |
Наиболее производительные пользовательские функций для работы с таблицами реализуются при помощи XLL-надстроек.
XLL-надстройка представляет собой скомпилированный на C/C++ файл динамической библиотеки Windows, специально предназначенной для использования в Excel. Разработчикам предоставляется специальная библиотека C API (Excel XLL SDK). Использование языка C с возможностью управления памятью позволяют разработать самые мощные и производительные функции для работы с данными Excel. Сравните производительность встроенных функций и UDF, разработанных на VBA.
Мы не имеем практического опыта разработки XLL-надстроек, поэтому желающих разрабатывать библиотеки такого типа отсылаем к MSDN.
Имеется не очень стандартный способ регистрации UDF-функций для вывода пользовательской функции на VBA в интерфейсе Excel через Application.ExecuteExcel4Macro(“REGISTER(…)”) . Метод проверен и работает. Но не дает никаких преимуществ в производительности функций, поэтому в практической работе его ценность сомнительна. Подробнее читайте:
COM DLL (Office Developer Tools – ODT)
Описание: | полнофункциональная надстройка Excel |
Требования: | ODE 97 или ODT XP |
Достоинства: | возможность создания интерфейса любой сложности; полностью закрытый исходный код. |
Недостатки: | невозможно создание пользовательских функций для работы с данными (UDF) |
Главной особенность Excel ODT является наличие возможности создания проекта VBA независимого от xls-файла, с возможностью последующей компиляции данного проекта в файл формата DLL (ActiveX DLL).
Исходный VBA-проект содержит специальный дизайнер с методами обработки событий Excel. В проекте, кроме этого, доступны для создания обычные модули кода, классы и формы. Причем формы могут быть открыты немодально. Надстройки данного типа могут быть подключены к различным версиям Excel одновременно. Файл DLL, скомпилированный с помощью ODE/ODT не требует никаких дополнительных исполняемых модулей для своей работы, кроме, собственно говоря, Excel.
Здесь важное замечание, что, даже если вас заинтересовали возможности ODE/ODT, вам вряд ли удастся приобрести лицензионные версии этих продуктов – Microsoft с 2003го года прекратил их распространение. Вообще же вероятно, что в России, официальным способом было приобретено совсем небольшое количество копий пакетов для разработчиков, поэтому искать пиратскую версию этих продуктов тоже особого смысла не имеет.
Настройка ленты Office 2007:
В отличие от панелей инструментов, новый пользовательский интерфейс Excel 2007 в виде ленты (ribbons) не имеет встроенных механизмов настройки напрямую через VBA.
Имеется довольно странный механизм настройки ленты через редактирование xml-файла. Формат xlsx представляет из себя zip-архив нескольких файлов и папок, в одном из которых доступна настройка на ленте пользовательских функций. Странно, но разработчики Excel почему-то не предоставили интерфейс для настройки ленты иным способом. Подробнее см. MSDN:
Вызов процедур COM-DLL из VBA
В тех случаях, когда основной алгоритм закрыт в COM-надстройке, вызов функций и процедур (например, из обработчиков пунктов меню) осуществляется через механизм позднего связывания (Late-bound). Для получения доступа к объекту надстройки используется функция COMAddIns объекта Application с указанием имени COM-надстройки. Например:
COM DLL (Visual Studio Tools for Office – VSTO)
Комментарии
. Workbook_AddinInstall и Workbook_AddinUninstall, так как их невозможно эмулировать в простом файле рабочей книги. К счастью, эти события требуются крайне редко; честно говоря, мы не знаем ни одного примера их полезного использования на практике.
Хорошее замечание.Действительно, хранить udf в xla можно. Только в этом случае формула использует xla как ссылку на файл (можно посмотреть в меню 2000-2003 Правка\Связи или 2007 Подготовить\Использовать ссылки на файлы).
В обычной работе это скорее всего никак не сказывается, но проблемы могут возникнуть при распространении надстройки из-за абсолютных путей в ссылках.
Исправил текст статьи. Спасибо.
. В надстройках нет возможности хранить пользовательские функции для работы с данными рабочих листов (user defined function - UDF).
Как это нет. я храню и использую пользовательские функции которые хранятся в .xla файле, и никаких проблем.
Неизвестное расширение файла может быть источником различных проблем. Однако выявление причин проблем с файлами XLA и их устранение не являются сложным процессом. Эта статья опишет 5 простых шагов, которые позволят вам решить проблемы с файлами XLA.
XLA расширение файла
- Тип файла Excel Add-In Format
- Разработчик файлов Microsoft
- Категория файла Файлы расширений
- Рейтинг популярности файлов
Как открыть файл XLA?
Шаг 1. Найдите и скачайте и установите соответствующее программное обеспечение
Обычно для открытия файлов. XLA достаточно выполнить следующие простые шаги: найти, загрузить и установить соответствующее программное обеспечение. Затем, дважды щелкнув значок файла, откройте файл. Система должна автоматически связать XLA файл с соответствующим программным обеспечением. Ниже приведен список программ, необходимых для открытия файлов с расширением XLA:
Программы, поддерживающие XLA файлы
WindowsШаг 2. Убедитесь, что файл XLA не заражен вредоносным ПО
Если данный файл с расширением XLA не заражен, возможно, антивирусная программа блокирует доступ к файлу. Пользователь должен принять необходимые меры предосторожности и выполнить действия, предложенные системой. После восстановления или удаления зараженного файла рекомендуется проверить всю систему на наличие вирусов. Вам нужно будет приобрести новую, чистую версию файла XLA.
Подсказка!
Имейте в виду, что вы всегда можете обратиться за помощью к ИТ-специалисту. Некоторые проблемы с файлами XLA могут быть трудно решить для менее опытных пользователей. Также вы можете обратиться за помощью к одному из разработчиков программного обеспечения, которое поддерживает файлы с расширением XLA. Для этого перейдите на подстраницу программного обеспечения и найдите адрес веб-сайта разработчика программного обеспечения.
Шаг 3. Убедитесь, что файлы XLA завершены, то есть были ли они загружены правильно
Если файл XLA не был загружен должным образом, программное обеспечение не сможет открыть такой файл. Проверьте размер файла в том месте, откуда вы скачали нужный файл. Если размер исходного файла отличается от размера загруженного файла XLA, вам придется загрузить файл снова.
Шаг 4. Убедитесь, что файлы XLA связаны с соответствующим программным обеспечением
Если в системном реестре нет записи, связанной с программой по умолчанию, которая должна использоваться для открытия файлов XLA , даже если данная программа установлена в системе, тогда файлы XLA должны быть связаны с рассматриваемым приложением.
Связывание файлов с приложениями выполняется аналогично, независимо от типа системы, и состоит в выборе приложения, которое следует использовать для открытия файлов данного типа. Чтобы связать XLA файлы с данным приложением, щелкните правой кнопкой мыши значок файла и выберите в контекстном меню пункт «Открыть с помощью» , который отобразит список предлагаемых программ. Выберите вашу программу из списка. Если приложение отсутствует в списке, используйте кнопку «Обзор» и укажите местоположение приложения. Если установлен флажок «Всегда использовать выбранное приложение для открытия файлов такого типа» , выбранное приложение будет установлено в качестве приложения по умолчанию для открытия указанных файлов.
Шаг 5. Убедитесь, что носитель, на котором хранятся файлы XLA, не поврежден или не поврежден
Возможно, что носитель, на котором находится файл, поврежден или поврежден. Попробуйте сканировать носитель на наличие ошибок.
ЧТО ТАКОЕ НАДСТРОЙКА
Для начала разберемся - что такое надстройка и для чего она нужна.
Надстройка - это файл Excel, имеющий расширение .xla или .xlam(только для 2007 и выше), который по умолчанию открывается как скрытая рабочая книга и может быть подключен к приложению для автоматического запуска вместе с запуском самого приложения. Книга надстройки открывается, но в списке видимых открытых файлов не значится, поэтому нет смысла её там искать. Отобразить такую книгу возможно только кодом.
Есть также и другие виды надстроек - надстройки COM и XLL-надстройки. Но о них я не буду рассказывать, т.к. они разрабатываются не в VBA, а в иных средах программирования
Как правило надстройки используют для распространения программного кода, который будет доступен для любой книги Excel. Т.к. надстройка запускается вместе с приложением - очень удобно хранить в ней коды. Можно создать меню для запуска процедур(об этом ниже) и функции пользователя - созданные в надстройке они доступны в любой открытой книге Excel без ссылок на другую книгу, что несомненно очень удобно. Функции пользователя, прописанные в надстройке для Excel 2007 и выше так же доступны по вводимым начальным символам:
и после нажатия TAB имя функции будет вставлено в ячейку.
Кроме модулей с кодами надстройки могут содержать и таблицы данных и диаграммы и все, что можно хранить в обычной книге. Но учитывая то, что книга скрыта - особого смысла в этих данных нет, если только не предполагается использовать эти данные в качестве шаблонов для создания определенных отчетов из надстройки. Часто на листах надстроек хранят константы для работы кода, если по каким-либо причинам не хочется использовать константы внутри кода VBA. Данные в ячейках файла надстройки можно изменять во время работы, но я не рекомендую сохранять открытый и исполняемый в данный момент файл надстройки, во избежание конфликтов.
КАК СОЗДАТЬ НАДСТРОЙКУ
Создать надстройку просто: из любого файла Excel идете в меню:
- Excel 2010-2013 : Файл (File) -Сохранить как (Save As) -Из выпадающего списка "Тип файла" выбрать Надстройка Excel(.xlam) (Excel Add-In(.xlam)) или Надстройка Excel 97-2003(.xla) (Excel 97-2003 Add-In(.xla)) .
- Excel 2007 : Кнопка Офис-Сохранить как (Save As) -Из выпадающего списка "Тип файла" выбрать Надстройка Excel(.xlam) (Excel Add-In(.xlam)) или Надстройка Excel 97-2003(.xla) (Excel 97-2003 Add-In(.xla)) .
- Excel 2003 : Меню-Сохранить как-Из выпадающего списка "Тип файла" выбрать "Надстройка Excel(.xla)".
Однако рекомендую не спешить с сохранением файла как надстройки. Сначала следует весь функционал, закладываемый в надстройку, потестировать, отладить и удостовериться, что все работает как предполагалось. Т.к. после сохранения файла как надстройки и открытия надстройки в Excel - закрыть её можно будет только закрыв Excel полностью(конечно, можно еще воспользоваться кодом вроде Workbooks("MyAddin.xla").Close , но это не очень удобно в разработке).
Так же следует заранее выбрать формат надстройки - для версий Excel 97-2003(.xla) и или только от 2007(.xlam) и выше. Надстройки .xla работают во всех версиях Excel, в том числе и в 2007 и выше. Это, пожалуй, единственное их преимущество перед форматом .xlam. Т.к. при этом все меню, которые будут созданы для вызова кодов, в версиях от 2007 и выше будут располагаться на вкладке "Надстройки" и будут иметь минимум настроек: нет возможности изменить размер значка; разбить на группы; сделать красивые подсказки; расположить в два ряда и т.п.
Для формата .xlam доступен более широкий ассортимент: они могут так же создать меню на вкладке "Надстройки", а могут и создавать собственные вкладки(через XML-схемы), команды на которых можно расположить в соответствии со всеми красивостями и достоинствами оформления, которое можно наблюдать в Ribbon-панелях Excel 2007 и выше.
Дальше я как раз более подробно расскажу про оба метода создания меню.
Я покажу создание надстроек на примере простого кода, который будет записывать в активную ячейку текущего листа число 10, закрасит ячейку красным цветом и установит для ячейки границы.
Код этой процедуры:
Код помещается в стандартный модуль книги, из которой хотите сделать надстройку.
СОЗДАНИЕ СОБСТВЕННОГО МЕНЮ НАДСТРОЙКИ ДЛЯ ВЕРСИЙ EXCEL 2003
Примерный вид данного меню в Excel 2003:
Примерный вид меню в Excel 2007 и выше:
Собственно, меню, совместимое со всеми версиями Excel делается исключительно на уровне VBA следующим кодом:
Основные моменты я постарался расписать в комментариях, но на некоторых все же хочу заострить внимание.
-
Свойство Type
.Controls.Add(Type:=1)
Наверное, самое важное свойство. Оно отвечает за тип элемента меню. Доступно всего пять типов:
- 1 - Button(обычная кнопка)
- 2 - TextBox(текстовое поле с возможностью записи в него значений и считывания значений из него)
- 3 - List(выпадающий список с заранее заданным списком значений)
- 4 - ComboBox(выпадающий список с возможностью записи в поле произвольного значения)
- 10 - PopupMenu(выпадающее меню с возможностью добавления новых элементов)
Иногда возникает вопрос: как сделать на такой панели ToggleButton? Т.е. кнопку, которая при нажатии остается в нажатом состоянии, а при повторном нажатии - в отжатом(т.е. в обычном). В данном случае это возможно исключительно через "финты" вызываемой по нажатию кнопки процедуры:
Еще одна проблема при разработке таких панелей: невозможность явно указать кнопку в стиле Caption(т.е. неактивную к нажатию кнопку). Это тоже можно сделать при помощи обычной Button, только в свойствах кнопки надо свойство Enabled установить в False:
.Enabled = False
при этом обязательно необходимо указать Style 2 и назначить Caption.
- 1 - только значок(16x16). Необходимо указывать свойство FaceID
- 2 - только текст. Свойство FaceId может быть указано, но никак не влияет на внешний вид кнопки
- 3 - картинка и текст. Обязательно указывать хотя бы одно из свойств: Caption или FaceID
Во вложении ниже пример надстройки с открытым кодом. Но в примере код расширен - там я привел коды с использованием всех типов элементов: и кнопки, и эмуляция ToggleButton, и списки, и текстбокс и выпадающее меню с доп.кнопками. В кодах есть комментарии, поэтому при желании разобраться не составит труда.
Так же можно при запуске надстройки добавлять в контекстное меню(меню, появляющееся по правому клику мыши на ячейке) свои команды. По сути мало что меняется, кроме пары вещей:
При этом добавить можно как собственные кнопки, так и уже существующие. Для примера добавим одной кнопкой дубль нашей команды с лены "ИЗМЕНИТЬ СВОЙСТВА АТИВНОЙ ЯЧЕЙКИ", а второй - вставку в ячейку только значений(встроенная команда - подробнее в статье: Как удалить в ячейке формулу, оставив значения?):
СОЗДАНИЕ СОБСТВЕННОГО МЕНЮ НАДСТРОЙКИ ДЛЯ ВЕРСИЙ EXCEL 2007
Как я уже писал - для Excel 2007 и выше подходит описанный выше метод создания собственного меню для ранних версий. Однако меню в данном случае помещается исключительно на вкладку "Надстройки" и имеет довольно убогий вид (как можно лицезреть выше) в сравнении с общим Ribbon-интерфейсом других панелей. Чтобы посмотреть как это выглядит можете просто скачать файл выше и запустить его. Появится вкладка "Надстройки" с одной кнопкой.
Однако учитывая появившуюся в 2007 версии офиса возможность кастомизировать ленту Ribbon через язык XML, гораздо практичнее(особенно для разработчиков) создавать собственную панель с отдельным именем, на которой можно разместить красиво команды, добавить свои собственные значки для команд без особых усилий.
Примерно так можно все это оформить:
Чтобы добавить свою панель необходимо изменить XML-схему для надстройки, которая присутствует в любом файле формата 2007. Есть несколько методов(я опишу лишь два).
Первый метод , он же совсем неудобный и требует навыков работы с XML
Но все это очень муторно и необходимо знать язык XML. Уверен, большая часть читающих статью уже 100500 раз нахмурили брови и пару раз перечитали, надеясь понять о чем речь. Поэтому не будем дальше разбирать этот метод и перейдем к следующему.
Id каждого элемента должно быть уникальным и предпочтительнее указывать его исключительно на латинице(англ.алфавит), т.к. кириллица распознается с трудом и есть шанс получить ошибку.
Теперь продолжаем добавлять свойства для button:
4. для начала подгружаем картинку через соответствующую кнопку.
5. После этого она будет в выпадающем списке правее.
6. Ставим курсор после "cahnge_cell" и нажимаем кнопку вставки тега изображения. Вставляется тег и название. Теперь у нашей кнопки есть картинка.
7. При помощи выпадающего меню параметров выбираем label и вставляем данный тег кнопкой, расположенной правее выпадающего списка. Курсор автоматически будет помещен внутрь кавычек. Вписываем текст - Изменить свойства ячейки.
8. При помощи выпадающего списка функций обратного вызова выбираем onAction и так же вставляем. Вписываем туда имя вызываемой процедуры - CallTest.
В результате должно получиться:
На этом, казалось бы, все. Но нет. Просто так, сама по себе XML-схема не вызовет процедуру - необходимо создать функции обратного вызова. Вот здесь у RibbonXMLEditor есть еще одна отличная функция - генерация модуля обратных вызовов - 9. Нажимаем на кнопку - получаем готовые функции. Как правило верхние две строки не нужны - нам нужны лишь сами функции:
Sub CallTest(control As IRibbonControl) End Sub
Копируем. Сохраняем схему нажатием дискеты в RibbonXMLEditor и закрываем программу.
Теперь открываем наш файл и вставляем скопированный текст функции. В эту функцию прописываем вызов нашей, уже созданной ранее процедуры: Test
Sub CallTest(control As IRibbonControl) Call Test End Sub
В принципе, можно и прямо в эту процедуру прописать все действия из процедуры Test.
Сохраняем.
Открываем наш файл - видим, что новая вкладка "Test excel-vba.ru" появилась, кнопка на ней есть. По нажатии на кнопку выделенная ячейка окрашивается в красный цвет, в ней прописывается значение 10 и создаются границы.
 
Так же можно вставлять на свою вкладку встроенные команды. Для этого в button используется не id, а idMso. Эти команды не нуждаются в обработке обратных вызовов, т.к. при их использовании происходит вызов встроенных функций - кнопки как бы просто дублируются на нашу вкладку со всеми их возможностями. Например, чтобы добавить на свою вкладку стандартную кнопку перехода в VisualBasic надо добавить кнопку с idMso VisualBasic:
Сам код при этом будет выглядеть так:
Естественно, на создании одних кнопок функционал лент Ribbon не ограничивается. Доступны почти все элементы(вып.меню, галереи, большие иконки(32х32) и т.д.), которые есть в стандартных вкладках. Если чуть потренироваться и поэкспериментировать с приложением RibbonXMLEditor - то вскоре вы сможете быстро и легко создавать красивые и функциональные приложения. Как пример таких приложений можете посмотреть описание к моей надстройке MulTEx.
Так же как и в случае с надстройками для 2003 Excel, здесь можно создавать кнопки в контекстном меню(правая кнопка мыши), но и тут не обошлось без нюансов:
- изменение данного меню доступно только начиная с версии Excel 2010. Для 2007 версии придется использовать старые методы - те же, что и для 2003(т.е. внедрение отдельного кода на Workbook_Open надстройки, как в примере выше для надстройки 2003)
- в надстройке Ribbon XML Editor я не нашел встроенного инструмента для вставки кодов обработки меню правой кнопкой мыши. Похожий по "звучанию" contextualTabs не совсем то, что нужно(а если быть точнее - совсем не то). contextualTabs - это динамические вкладки, которые появляются после основных вкладок при работе с определенными объектами. Например, с умными таблицами. Когда выделяем умную таблицу или любую ячейку в ней, то появляется группа динамических вкладок "Работа с таблицами". Вот в неё и вносятся изменения при помощи contextualTabs
Поэтому прописывать "добавки" в меню по правой кнопке мыши придется самостоятельно. Код вставки уже имеющегося у нас кода приведен ниже:
добавлять его надо исключительно на вкладке 2010, 2013(customUI14.xml) внизу редактора Ribbon XML Editor. Обращаю внимание, что код создания собственной вкладки на панели дублируется: он должен присутствовать и в 2007(customUI.xml) и в 2010, 2013(customUI14.xml) . Это необходимо сделать, чтобы в 2007 Excel была только вкладка, а начиная с 2010 - еще и контекстное меню(схемы customUI.xml и customUI14.xml обрабатываются отдельно друг от друга в зависимости от того, в какой версии открыт файл). При этом в 2007 это никаких ошибок не вызовет.
Остальные правила для создания элементов меню точно такие же, как и для вкладок: можно добавлять как собственные команды, так и встроенные(при помощи idMso).
Я сам предпочитаю контекстное меню дополнять исключительно кодом VBA, т.к. для 2007 его в любом случае придется писать.
Надстройка для Excel 2007 и выше.zip (14,6 KiB, 3 185 скачиваний)
В примере я не стал делать много кнопок и их обработку - слишком уж много различных элементов там доступны и для раскрытия всего функционала этой статьи не хватит. Да и в интернете уже полно статей с разбором работы с XML-интерфейсом новых версий Excel. Основной упор сделан на создание основной вкладки и контекстного меню, т.к. техника создания контекстного меню уж очень не очевидна из надстройка Ribbon XML Editor.
Осталось дело за малым - научиться эти надстройки подключать. Но об этом я уже писал в статье Подключение/отключение надстроек
Читайте также: