Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.03.2020, 12:58   #1
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию Перевод с VBA на Делфи.

Добрый день! Нашел решение по этой теме, макрос записал, сформировался код


Добавление шаблона
Код:
Sub Макрос1()
 
    AddIns.Add FileName:= _
        "C:\Users\*****\AppData\Roaming\Microsoft\Шаблоны\Decisionmod.dot" _
        , Install:=True
    AddIns.Add FileName:= _
        "C:\Users\****\AppData\Roaming\Microsoft\Шаблоны\Decision.dot", _
        Install:=True
    With ActiveDocument
        .UpdateStylesOnOpen = False
        .AttachedTemplate = "Normal"
    End With
End Sub

Удаление шаблонов
Код:
Sub Макрос1()
 
    AddIns( _
        "C:\Users\****\AppData\Roaming\Microsoft\Шаблоны\Decisionmod.dot" _
        ).Delete
    AddIns( _
        "C:\Users\****\AppData\Roaming\Microsoft\Шаблоны\Decision.dot"). _
        Delete
    With ActiveDocument
        .UpdateStylesOnOpen = False
        .AttachedTemplate = "Normal"
    End With
End Sub
Вход в меню шаблонов
Код:
Sub Макрос2()
'
' Макрос2 Макрос
'
'
    With ActiveDocument
        .UpdateStylesOnOpen = False
        .AttachedTemplate = "Normal"
    End With
End Sub
Подскажите, пожалуйста, какие аналоги в делфи есть команды addins.add и addins.delete? (uses comObj). Буду благодарен за любую помощь, спасибо!
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 16.03.2020, 16:25   #2
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Попробовал так написать, применяется только к документу, который создался через программный код, а нужно чтоб шаблоны видели все документы wordа в общей папке пользователя, что исправить?


Код:
procedure TForm1.Button1Click(Sender: TObject);
var wrd: Variant;

  fil, dir: PChar;
begin


  fil := pchar(ExtractFilePath(Application.ExeName) + 'doc1.dot');
  dir := PChar(ExtractFilePath(GetEnvironmentVariable('APPDATA')) + 'Roaming\Microsoft\Шаблоны\doc1.dot');
  CopyFile(fil, dir, false);


  Wrd := CreateoleObject('Word.Application');
  Wrd.visible := false;
  wrd.documents.add(ExtractFilePath(GetEnvironmentVariable('APPDATA')) + 'Roaming\Microsoft\Шаблоны\normal.dot', false);
  Wrd.addins.add(string(dir), false);

  Wrd.visible := true;
end;
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
БПФ - перевод с С++ на Делфи Семионн Общие вопросы C/C++ 0 21.04.2012 21:50
Перевод с Делфи на С# Vovchik123 Помощь студентам 3 15.11.2011 08:35
Перевод с Делфи на C++ Anubys Помощь студентам 0 15.04.2011 14:37
Перевод с си на делфи LionTM Помощь студентам 0 09.01.2011 15:12
Перевод с делфи в си. Iceman Общие вопросы C/C++ 0 28.10.2009 15:21