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

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

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.03.2020, 10:17   #1
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию Добавление надстроек *.dot в word

Ребят, добрый день!
Опишу ситуацию.
Есть множество шаблонов *.dot, создаю новый документ, подключаю через

файл-параметры-надстройки-управление-шаблоны-перейти-добавить(30 раз выбираю разные файлы)-ок,

возможно ли автоматизировать? к примеру положить скрипт в папку с шаблонами и запустив его чтоб все шаблоны в папке присоединились и добавились автоматически?
Подскажите, в какую сторону копать? Пытался гуглить макросы, но все что-то не то находилось.
Буду благодарен!
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 11.03.2020, 10:27   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от Алексей_2012 Посмотреть сообщение
Пытался гуглить макросы, но все что-то не то находилось
ето не помогает?
https://bettersolutions.com/word/templates/vba-code.htm
https://word.tips.net/T000822_Creati...nt_in_VBA.html
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 11.03.2020, 12:03   #3
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

а возможно ли создать отдельный файл, что-то похожее на .bat, на который кликнешь, далее файлы рядом с этим скриптом с расширением *.dot копируются в определенную папку appdata/roaming/microsoft/шаблоны и подцепляются как надстройки для всех документов ворда, для старых и для новых.
Вот.
С макросами ни разу не работал, прогал на qBasic, C++, delphi, pascal

в принципе, нашел код на vba, скорее всего он подойдет, как его вынести в отдельный файл, подобно *.bat?
Прошу прощения за возможно глупые вопросы)

Код:
Private Const ThisName = "Надстройка.xlam"  'Под этим именем надстройка будет подключена

Private Sub Workbook_Open()
    Application.ScreenUpdating = False
    Install     'Устанавливаем надстройку
    Application.ScreenUpdating = True
End Sub

Private Sub Install()   'Устанавливаем надстройку
    Dim ad As AddIn, UserLibraryPath As String, TWB As Workbook, MyName As String
    Dim FN As String, MBR As VbMsgBoxResult, fso, Flag As Boolean, Wb As Workbook
    
    Set fso = CreateObject("Scripting.FileSystemObject")  'Объект для работы с файлами

    Set TWB = ThisWorkbook
    FN = TWB.FullName
    MyName = Right(FN, Len(FN) - InStrRev(FN, "\"))  'Выделяем имя из пути
    Flag = False 'Флаг, сигнлизирующий, что такая надстройка была
    For Each ad In Application.AddIns   'Перебираем надстройки
        If ad.Name = ThisName Then      'Если имя надстройки совпадает с нашим
            If ad.FullName = TWB.FullName Then Exit Sub 'Проверяем, "не мы ли это"
            'Если не мы, то советуемся с пользователем:
            MBR = MsgBox("Надстройка " + ThisName + " существует. Заменить?", vbYesNo, "Внимание!")
            If MBR = vbNo Then Exit Sub 'Если заменять не надо
            ad.Installed = False        'Отключаем
            Flag = True                 'Сигналим, что такая надстройка была
            On Error Resume Next  'Включаем обработку ошибок
                Kill ad.FullName            'Удаляем файл
            On Error GoTo 0         'Отключаем обработку ошибок
            Exit For
        End If
    Next ad
    UserLibraryPath = Application.AddIns.Parent.UserLibraryPath 'Путь до надстроек
    On Error Resume Next  'Включаем обработку ошибок
    fso.CopyFile TWB.FullName, UserLibraryPath + ThisName, True 'Копируем свой файл
    On Error GoTo 0         'Отключаем обработку ошибок
    Set Wb = Workbooks.Add
    If Not Flag Then
        Set ad = AddIns.Add(Filename:=UserLibraryPath & ThisName, CopyFile:=True) 'Если такой надстройки не было, подключаем её
    End If
    ad.Installed = True         'Включаем свою надстройку
    Wb.Close False  'После установки, закрываем текущую книгу
End Sub
from dark to light)

Последний раз редактировалось Алексей_2012; 11.03.2020 в 12:20.
Алексей_2012 вне форума Ответить с цитированием
Старый 16.03.2020, 13:01   #4
Алексей_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
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление свойств к документу Word МихаилЧетин Microsoft Office Word 3 24.07.2013 09:58
Добавление столбцов Word uncleau Microsoft Office Word 2 07.06.2010 18:49
Добавление таблицы в Word mania04 Общие вопросы C/C++ 0 13.04.2010 12:46
ПО для установки надстроек - тестирование alvazor Microsoft Office Excel 3 25.01.2010 16:56
Создание надстроек Jarik Microsoft Office Excel 7 22.04.2009 19:41