Работа с элементами управления ленты, определенными в надстройке VSTO с использованием VBA - PullRequest
0 голосов
/ 07 ноября 2018

Я пытаюсь создать ленту для Office Word 365 с двумя полями редактирования и флажком.

У меня есть макрос, который я хотел бы использовать после этого.

До сих пор я использовал конструктор лент в Visual Studio для создания ленты надстроек. enter image description here

Надстройка отображается в Word и выглядит так, как будто должна. Я просто не могу понять, как получить ввод из ящиков для редактирования и флажок для VBA.

Код VBA, который у меня есть, выглядит следующим образом:

Sub PasteAndSelectPicture()

Application.ScreenUpdating = False

Dim ils As Word.InlineShape
Dim shp As Word.Shape
Dim lNrIls As Long
Dim lNrShp As Long
Dim rngDoc As Word.Range
Dim rngSel As Word.Range

Set rngDoc = ActiveDocument.Content
Set rngSel = Selection.Range
rngDoc.End = rngSel.End + 1

'Get an InlineShape
lNrIls = rngDoc.InlineShapes.Count
Selection.PasteSpecial Link:=False, DataType:=wdPasteEnhancedMetafile, Placement:=wdInLine, DisplayAsIcon:=False

Debug.Print rngDoc.InlineShapes.Count, lNrIls

Set ils = rngDoc.InlineShapes(lNrIls + 1)
ils.Width = Application.CentimetersToPoints(VAR1)

Set shp = ils.ConvertToShape
shp.IncrementRotation VAR2

shp.ConvertToInlineShape

Application.ScreenUpdating = True

End Sub

Я бы хотел, чтобы VAR1 и VAR2 были входами из двух окон редактирования.

1 Ответ

0 голосов
/ 07 ноября 2018

Из-за этого невозможно получить доступ к элементам управления ленты из проекта, который не содержит XML этой ленты. Хотя VSTO Ribbon Designer «приятно иметь», вы не можете использовать его с кодом VBA - только с кодом в проекте VSTO, который содержит ленту.

Это означает, что вам нужно либо написать код VB.NET в проекте VSTO, либо создать XML-ленту по-другому.

Если вы хотите использовать VBA, тогда вам нужен XML ленты (в VSTO есть опция «Экспорт»). С помощью Редактора пользовательских интерфейсов лента XML может быть включена в файл Word или файл dotm.

Информация из серии статей Настройка Office Fluent Ribbon 2007 для разработчиков описывает, как писать код VBA, использующий элементы управления в XML-ленте. В Интернете также есть множество статей, дискуссий и примеров, а также действительно хорошая книга на эту тему (RibbonX Customizing the Office 2007 RIbbon).

...