【问题标题】:ActiveX control of Word. Select text and imagesWord 的 ActiveX 控件。选择文字和图片
【发布时间】:2020-07-05 15:27:50
【问题描述】:

这是我到目前为止所做的:

word = actxserver('Word.Application');

document = word.documents.Open('C:\Documents and Settings\kz7213\Desktop\Test.docx');

selection = word.Selection;

selection.TypeText('Big Finale'); 
selection.Style='Heading 1'; 
selection.TypeParagraph;

FIG1 = figure('Visible','off'); plot([1 2 3 4 5],[4 1 3 5 7]);

print -dmeta

selection.Paste; 

selection.Style='Heading 1';

selection.InsertCaption('Figure','Test figure 1'); %Not working
selection.Style='CaptionStyle';

selection.TypeParagraph;

如何选择之前输入的文本(例如“Big Finale”)进行编辑,或者选择我粘贴的图形。粘贴命令以便为图像添加标题?

【问题讨论】:

  • 您想在哪一刻选择“大结局”?在您键入它之后或在您运行完整的代码之后?我已将您问题的标签更改为更合适。
  • 我想在运行完我的完整代码后选择它!
  • 我可以给你一些 word-vba 的解决方案,你会自己把它转换成 'matlab-office-interop' 代码吗?
  • 那太好了!谢谢!
  • 也许您使用:document.InlineShapes.Item(1) 来获取插入的图像?这是我使用它的example。 @KazJaw:如果你愿意,我可以帮忙翻译..

标签: vba matlab ms-word activex office-interop


【解决方案1】:

VBA 中 MS Word 的可能解决方案:

'to find a text
    Selection.Find.Execute FindText:="Big Finale", Wrap:=wdWrapAlways

'to select inline shape
    ActiveDocument.InlineShapes(1).Select

查找内联形状的替代解决方案是使用 .Find.Execute method 并进行以下设置:

Selection.Find.Execute FindText:="/", Wrap:=wdWrapAlways, MatchWildcards:=True

【讨论】:

  • 在 MATLAB 中这将是:selection.Find.Execute('Big Finale',[],[],[],[],[],[],1) 用于第一个(其中1 是枚举wdWrapAlways 的基础值Wrap 选项)。请注意,我们必须为 Find.Execute 的其他可选参数指定空值,因为 MATLAB 仅支持位置参数
  • 第二个是:document.InlineShapes.Item(1).Select,最后一个是:selection.Find.Execute('/',[],[],true,[],[],[],1)
  • 小修正:Wrap应该是WdFindWrap常量之一,在本例中为wdFindContinue(也用1表示)
  • 非常感谢您的帮助!它帮助了我!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-04
  • 2018-08-30
相关资源
最近更新 更多