Тема: Конструктор ленты для office 10
Здравствуйте!
Создаю ленту для word 10 в VS10, как присвоить значку запуск макроса в VBA Word?
Спасибо!
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Здравствуйте!
Создаю ленту для word 10 в VS10, как присвоить значку запуск макроса в VBA Word?
Спасибо!
Я создаю ленту с помощью бесплатной программы Ribbon XML Editor, и даже в ней мало чего понимаю.
Если на Visual Studio в конструкторе, то там просто дважды щёлкнуть на кнопку. Автоматом откроется файл с кодом и будет создана процедура обратного вызова.
Может пригодится?
<button id="__Cap15" label="Заголовок приложения" imageMso="PageNumbersInHeaderInsertGallery" onAction="ApplyStyle" tag="Заголовок приложения"/>
Это строка кода на кнопку из файла шаблона *.dotm к которому я прицепил свою ленту. Макрос вызывается командой onAction="ApplyStyle". В модуле прописана sub с этим же именем.
Для работы использовал Ribbon XML Editor
Спасибо! Разобрался я в конструкторе ленты. Выглядит запуск макроса так:
Private Sub Button1_Click(sender As System.Object, e As Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs) Handles Button1.Click
Globals.ThisAddIn.Application.Run("МойМакрос")
End Sub
<button id="__Cap15" label="Заголовок приложения" imageMso="PageNumbersInHeaderInsertGallery" onAction="ApplyStyle" tag="Заголовок приложения"/>
Совет: вместо явного указания значка
imageMso="Значок"
лучше подтягивать его с помощью кода:
getImage="«Значок"
Прилагаю код для назначения значка в коде:
Public Function значок(control As IRibbonControl, ByRef image) As IPictureDisp
Set image = CommandBars.GetImageMso("FilePrint", 32, 32)
End Function
В этой процедуре вам известно название кнопки (control.id). Вы можете создать таблицу с названием кнопки и названием значка для неё. Тогда эта процедура будет лезть в таблицу за нужным значокм.
Это идеальный вариант. Сделайте, как я посоветовал. Не пожалеете.
На скриншоте видно, что я просто выбираю нужный мне значок, и он залетает в таблицу. В xml-файл даже не лезу.
Забыл, что у вас Visual Studio.
Там эта процедура будет выглядеть так
Function Значок(ByRef control As Office.IRibbonControl) As Object
Select Case control.Id
Case Is = "Кнопка1" : Return My.Resources.значок2
Case Is = "Кнопка2" : Return My.Resources.Значок2
Case Else : Return My.Resources.ЗначокПоУмолчанию
End Select
End Function
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться