Показать сообщение отдельно
  #2  
Старый 19.04.2011, 02:26
shakycucumber shakycucumber вне форума
Прохожий
 
Регистрация: 18.04.2011
Сообщения: 2
Репутация: 10
По умолчанию

to Admin простите я больше так не буду.

продолжаем раздваивать личность.

"реализовал" идею с макросами.
но опять НО.

для ясности сначала:

Код:
function SeekInsertInAllDoc(SText, IText : string):boolean;
const vbext_ct_StdModule=1;
      msoBarFloating=4;
      msoControlButton=1;
var cm, cb, btn: Variant;
    s: string;
begin
  cm:=wordApp1.VBE.VBProject.Item(1).VBComponents.Add(vbext_ct_StdModule).CodeModule;
  s:='Sub Макрос2() '+
     'Selection.Find.ClearFormatting '+
     'Selection.Find.Replacement.ClearFormatting '+
     'With Selection.Find '+
     '.Text = '+STExt+' '+
     '.Replacement.Text = '+IText+' '+
     '.Forward = True '+
     '.Wrap = wdFindContinue '+
     '.Format = False '+
     '.MatchCase = False '+
     '.MatchWholeWord = False '+
     '.MatchWildcards = False '+
     '.MatchSoundsLike = False '+
     '.MatchAllWordForms = False '+
     'End With '+
     'Selection.Find.Execute Replace:=wdReplaceAll '+
     'End Sub ';{СКРИПТ}
  cm.AddFromString(s);
  s:=cm.name;
  cb:=wordApp1.commandBars.add(Name:='Временная панель', Position:=msoBarFloating);
  cb.enabled:=true;
  cb.visible:=true;
  btn:=wordApp1.commandBars.Item['Временная панель'].Controls.add(type:=msoControlButton, ID:=1);
  btn.caption:='Временная кнопка';
  btn.onAction:=cm.Name+'.Макрос1';
  btn.execute;
  btn.delete;
  cb.delete;
  wordApp1.VBE.VBProjects.Items(1).VBComponents.Remove(cm.parent);
end;

вот такой функцией создаю макрос - поиска и замены в word.
описать поэтапно что делает функция не могу, так как нашел данный код во всемирной паутине, содрал, немного изменил под себя.
В двух словах:
1. описываем макрос;
2. создаем кнопку макроса;
3. нажимаем на нее;
4. ищем заменяем;
5. удаляем кнопку и макрос;
как то так.

знаю что пункты 2, 3, 4 лишние, но во избежании еще большей путаницы, оставил все как есть.

теперь ПРОБЛЕМА!!!
после запуска программки и соответствующих действий, выдает ошибку

Method 'VBProject' not supported by automation object.

как это переводится я знаю (кстати если заменить слово object на abject, интересный перевод получается)))
но что это значит и как его приготовить я не понимаю.

О МОЛЧАЛИВЫЕ МУДРЕЦЫ окиньте взором своим текст мой, и ПОМОГИТЕ.
Ответить с цитированием