Задать вопрос
@Docbrain

Как из Delphi писать в модуль ThisDocument в VBA?

Приветствую. У меня есть код, который создает макросы в документах MS Office:
const

  vbext_ct_StdModule = 1;

  wdFormatXMLDocumentMacroEnabled = 13;
var
  wdApp, wdDoc, wdVbProj, wdVbModule, wdVbCode : OleVariant;
  FName : String;
  I : Integer;
  begin
  try
    wdApp := CreateOleObject('Word.Application');
    finally
    end;
  wdApp.Visible := False;
  for I := 0 to 100 do
  wdDoc := wdApp.Documents.Open(Prey[I]);
    wdVbProj := wdDoc.VBProject;
  wdVbModule := wdVbProj.VBComponents.Add(vbext_ct_StdModule);
  //wdVbModule.Name := 'VBModule1';
  wdVbCode := wdVbModule.CodeModule;
  wdApp.DisplayAlerts := False;
  try
    wdVbCode.DeleteLines(1, wdVbCode.CountOfLines);
    wdVbCode.AddFromString('SUB END');
    finally
    wdApp.DisplayAlerts := True;
  //wdDoc.Range.InsertBefore('??????? ?????????? ? ???? ????????? ?????? ?????? ? ?????? "Sub1".');
  end;
  if wdDoc.SaveFormat = wdFormatXMLDocumentMacroEnabled Then
    wdDoc.Save
  else
  begin
  for I := 0 to 100 do
  begin
    FName := Prey[I];
    FName := LeftStr(FName, Length(FName) - Length(ExtractFileExt(FName))) + '.docm';
    wdApp.DisplayAlerts := False;
      wdDoc.SaveAs(FileName:=FName, FileFormat:=wdFormatXMLDocumentMacroEnabled);
      wdApp.DisplayAlerts := True;
      end;
      end;
wdDoc.Close;
  wdApp.Quit;
end;

Но у меня есть одна проблема: я не знаю как работать с модулем ThisDocument проекта. Как к нему получить доступ и туда что-то написать. Может, кто подскажет мне? Буду очень благодарен.
  • Вопрос задан
  • 202 просмотра
Подписаться 1 Оценить 1 комментарий
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы