1

Тема: Где хранятся настройки автозамены?

В форуме был задан вопрос: "Где хранятся настройки автозамены?"

Нашел в интернете следующий ответ:

внешняя ссылка

Все автозамены хранятся в файлaх с расширением *.acl в папке %APPDATA%\Microsoft\Office. Файлов там несколько для каждого языка свой.
Для переноса настроек автозамены необходимо скопировать файл MSO0127.acl. В xp нашел его здесь C:\Documents and Settings\Admin\Application Data\Microsoft\Office. В семерке здесь C:\Users\****\Application Data\Microsoft\Office.

У меня в Word 2013 имеются следующие файлы с расширением ACL (в скобках приведены предположительное назначение файла):
MSO0127.acl (автозамена математических символов)
MSO1024.acl (автозамена символов без проверки (No proofing))
MSO1026.acl (автозамена слов болгарского языка; Language ID = 1026)
MSO1027.acl (автозамена слов каталонского языка; Language ID = 1027)
MSO1029.acl (автозамена слов чешского языка; Language ID = 1029)
MSO1031.acl (автозамена слов немецкого языка; Language ID = 1031)
MSO1032.acl (автозамена слов греческого языка; Language ID = 1032)
MSO1033.acl (автозамена слов английского языка (США); Language ID = 1033)
MSO1036.acl (автозамена слов французского языка; Language ID = 1036)
MSO1038.acl (автозамена слов венгерского языка; Language ID = 1038)
MSO1045.acl (автозамена слов польского языка; Language ID = 1045)
MSO1046.acl (автозамена слов португальского языка (Бразилия); Language ID = 1046)
MSO1049.acl (автозамена слов русского языка; Language ID = 1049)
MSO1050.acl (автозамена слов хорватского языка; Language ID = 1050)
MSO1051.acl (автозамена слов словацкого языка; Language ID = 1051)
MSO1055.acl (автозамена слов турецкого языка; Language ID = 1055)
MSO1058.acl (автозамена слов украинского языка; Language ID = 1058)
MSO1059.acl (автозамена слов белорусского языка; Language ID = 1059)
MSO1060.acl (автозамена слов словенского языка; Language ID = 1060)
MSO1061.acl (автозамена слов эстонского языка; Language ID = 1061)
MSO1087.acl (автозамена слов казахского языка; Language ID = 1087)
MSO2057.acl (автозамена слов английского языка (Великобритания); Language ID = 2057)
MSO2070.acl (автозамена слов португальского языка; Language ID = 2070)
MSO3081.acl (автозамена слов английского языка (Австралия); Language ID = 3081)
MSO3082.acl (автозамена слов испанского языка; Language ID = 3082)

Достаточно подробный перечень идентификационных номеров языков мира приведен здесь:
внешняя ссылка

См также: MsoLanguageID Enumeration
внешняя ссылка

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

2

Re: Где хранятся настройки автозамены?

Здравствуйте, Александр.
Я не знаю, где хранится этот список, но если нужно, его можно экспортировать в таблицу Excel, например.
Точно не помню, но для разных языков там свои списки. Возможно, поэтому там так много файлов у вас.
Код для экспорта списка автозамен (может понадобиться подключить библиотеку Excel)

    '    Sub Экспортировать_список_автозамен()

    '        'Dim j As Object
    '        'Dim i As Integer
    '        'Dim e As Object

    '        'e = New Excel.Application

    '        'e.Workbooks.Add()

    '        'For Each j In AutoCorrect.Entries

    '        '    i = i + 1
    '        '    e.ActiveSheet.Cells(i, 1) = "'" & j.Name
    '        '    e.ActiveSheet.Cells(i, 2) = "'" & j.Value

    '        'Next j

    '        'e.Visible = True

    '    End Sub

3

Re: Где хранятся настройки автозамены?

Настаев пишет:

может понадобиться подключить библиотеку Excel

чтобы не утруждать пользователя подключением библиотеки, что для некоторых может быть сложно, возможно использование позднего связывания (остальную часть Вашего кода не менял)

Sub Экспортировать_список_автозамен()
    Dim j As Object
    Dim i As Integer
    Dim e As Object
    On Error Resume Next
    Set e = GetObject(, "Excel.Application")
    If Err Then
        Set e = CreateObject("Excel.Application")
        Err.Clear
    End If
    e.Workbooks.Add
    For Each j In AutoCorrect.Entries
        i = i + 1
        e.ActiveSheet.Cells(i, 1) = " " & j.Name
        e.ActiveSheet.Cells(i, 2) = " " & j.Value
    Next j
    e.Visible = True
End Sub