使用VBA处理VSTO附加模块中定义的功能区控件
我正在尝试为Office Word 365创建一个功能区,其中包含两个编辑框和一个复选框 我有一个宏,我想在以后使用该输入 到目前为止,我已经使用VisualStudio中的Ribbon Designer创建了一个外接程序Ribbon。 外接程序显示在Word中,看起来应该是这样的。我就是不知道如何从编辑框和复选框中获取vba的输入 我的VBA代码如下所示:使用VBA处理VSTO附加模块中定义的功能区控件,vba,ms-word,vsto,ribbonx,Vba,Ms Word,Vsto,Ribbonx,我正在尝试为Office Word 365创建一个功能区,其中包含两个编辑框和一个复选框 我有一个宏,我想在以后使用该输入 到目前为止,我已经使用VisualStudio中的Ribbon Designer创建了一个外接程序Ribbon。 外接程序显示在Word中,看起来应该是这样的。我就是不知道如何从编辑框和复选框中获取vba的输入 我的VBA代码如下所示: Sub PasteAndSelectPicture() Application.ScreenUpdating = False Dim
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是来自两个编辑框的输入。根据设计,无法从不包含功能区XML的项目中访问功能区控件。虽然VSTO功能区设计器“很好拥有”,但您不能将其与VBA代码一起使用-只能与包含功能区的VSTO项目中的代码一起使用 这意味着您要么需要在VSTO项目中编写VB.NET代码,要么需要以不同的方式创建功能区XML 如果要使用VBA,则需要功能区XML(VSTO中有“导出”选项)。使用功能区XML可以合并到Word docm或dotm文件中
本系列文章中的信息介绍了如何编写在功能区XML中使用控件的VBA代码。还有很多文章,讨论和例子在互联网上,加上一个真正的好书关于这个主题(RibbonX定制办公室2007丝带)。所以,简而言之,我从你的回答中读到的是,我要做的是努力去做实际上“马丁”的努力“没有定义——我不知道你是怎么想的。也不知道VSTO加载项(而不是VBA解决方案)是否适合您。在功能区中使用编辑框并不“困难”(无论如何,对我来说),但它并不像使用VBA用户表单那样简单。