2013-08-07 2 views
0

Это то, что я сделал до сих пор:ActiveX управления Word. Выделите текст и изображения

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; 

Как выбрать предыдущий введенный текст, такие как «Большой финал», чтобы изменить его, или выбрать фигуру я наклеен с выбором. Вставить команду, чтобы сделать подпись для изображения?

+0

в какой момент вы хотите выбрать «Большой финал»? после того, как вы набрали его или после завершения вашего кода? Я изменил теги для вашего вопроса более подходящим. –

+0

Я хочу выбрать его после запуска моего полного кода! –

+0

Я мог бы дать вам некоторое решение в word-vba, вы можете преобразовать его самостоятельно в код «matlab-office-interop»? –

ответ

3

Возможное решение в VBA для MS Word:

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

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

Альтернативное решение найти InlineShape (s) является использование .Find.Execute method со следующими параметрами:

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

в MATLAB, который будет: 'selection.Find.Execute ('Big Finale', [], [], [], [], [], [] , 1) 'для первого (где' 1' является базовым значением перечисления 'wdWrapAlways' для опции' Wrap'). Обратите внимание, что нам нужно было указать пустые значения для других необязательных аргументов ['Find.Execute'] (http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.find.execute. aspx), так как MATLAB поддерживает только позиционные аргументы – Amro

+0

Второй из них: 'document.InlineShapes.Item (1). Выберите« while »:« selection.Find.Execute ('/', [], [], true, [], [], [], 1) ' – Amro

+0

@Amro, спасибо вам за поддержку! –