среда, 26 августа 2009 г.

C# и MS Office: Простые хитрости

Пугает куча объектов при использовании Interop.Word (Excel)? Не знаете как сделать нужное действо? Тогда могу предложить простой и довольно удобный способ - макросы:
  • Запускаем Word (Excel или еще что надо)
  • Выбираем Tools -> Macro -> Record New Macro….
  • Творим свое действо (например перемещаемся в начало документа по Ctrl+Home)
  • Останавливаем запись и идем в Tools -> Macro -> Macros…
  • Выбираем свой макрос и смотрим код:
    Sub Macro1()
    Selection.HomeKey Unit:=wdStory
    End Sub
  • Переводим его на C#
object oUnit = Word.WdUnits.wdStory;
object oExtend = Type.Missing;
word.app.Selection.HomeKey(ref oUnit,ref oExtend);
где word.app = new Word.Application();
Все! Теперь при выполнении этого кода курсор будет автоматически переходить в начало документа (если например нельзя использовать метки, то будет незаменимо)

2 комментария:

Andrey Piskov aka MARTin kRuGeR комментирует...

а ещё учим четвёртый фреймворк, где во много раз упростили взаимодействие с офисом :]

4ybaka комментирует...

Ага, а потом 5, 6 - а там глядишь и пенсия;)