"Automation error" в MS Word 2010 - VB

Узнай цену своей работы

Формулировка задачи:

...Причем в MS Wod 2003/2007 макрос работал корректно. Там переписывался стандартный файл normal.doc (подменялся файлом с макросом). А теперь этот файл MS Word открывает с ошибкой. Спотыкается, видимо, на первой же директиве:
Private Sub Document_Open()
Call field_repl
End Sub
Подскажите, куда смотреть.
Спасибо.

Решение задачи: «"Automation error" в MS Word 2010»

textual
Листинг программы
Attribute VB_Name = <font color="teal">"field_repl"</font>
<font color="blue">Sub</font> Записать()
Attribute Записать.VB_Description = <font color="teal">"Макрос создан 11.01.2005 ivan"</font>
Attribute Записать.VB_ProcData.VB_Invoke_Func = <font color="teal">"Normal.NewMacros.Записать"</font>
<font color="00AA00">'</font>
<font color="00AA00">' Записать Макрос</font>
<font color="00AA00">' Макрос создан 11.01.2005 ivan</font>
<font color="00AA00">'</font>
frmFettle.Show vbModal
<font color="blue">End</font> <font color="blue">Sub</font>
<font color="blue">Sub</font> ОткрытьЗаписнуюКнижку()
frmMain.Show vbModal
<font color="blue">End</font> <font color="blue">Sub</font>
<font color="blue">Sub</font> Вставить()
Attribute Вставить.VB_Description = <font color="teal">"Макрос создан 11.01.2005 ivan"</font>
Attribute Вставить.VB_ProcData.VB_Invoke_Func = <font color="teal">"Normal.NewMacros.Вставить"</font>
<font color="00AA00">'</font>
<font color="00AA00">' Вставить Макрос</font>
<font color="00AA00">' Макрос создан 11.01.2005 ivan</font>
<font color="00AA00">'</font>
UserForm1.Show vbModal
<font color="blue">End</font> <font color="blue">Sub</font>
<font color="blue">Sub</font> field_repl()
<font color="blue">Dim</font> str1, str2 <font color="blue">As</font> <font color="blue">String</font>
<font color="blue">Dim</font> colzap <font color="blue">As</font> <font color="blue">Integer</font>
<font color="blue">Dim</font> mini <font color="blue">As</font> ARINIManager
<font color="blue">Dim</font> myRange <font color="blue">As</font> Range
<font color="blue">If</font> InStr(<font color="darkblue"><b>1</b></font>, UCase(ActiveDocument.FullName), UCase(<font color="teal">"\text\"</font>)) = <font color="darkblue"><b>0</b></font> <font color="blue">Then</font> <font color="blue">Exit</font> <font color="blue">Sub</font>
<font color="blue">If</font> Dir$(<font color="teal">"c:\arm-2\merge.txt"</font>) = <font color="teal">""</font> <font color="blue">Then</font> <font color="blue">Exit</font> <font color="blue">Sub</font>
<font color="blue">Set</font> mini = <font color="blue">New</font> ARINIManager
mini.INIFile = <font color="teal">"c:\arm-2\merge.txt"</font>
colzap = mini.Sections.Count
<font color="blue">If</font> colzap = <font color="darkblue"><b>0</b></font> <font color="blue">Then</font> <font color="blue">Exit</font> <font color="blue">Sub</font>
i = <font color="darkblue"><b>1</b></font>
<font color="blue">Set</font> myRange = ActiveDocument.Content
<font color="blue">While</font> i <= colzap
    str1 = Trim(mini.Sections(i).<font color="blue">Name</font>)
    str1 = Replace(str1, <font color="teal">"  "</font>, <font color="teal">" "</font>)
    str2 = Trim(mini.GetValue(mini.Sections(i).<font color="blue">Name</font>, <font color="teal">"val"</font>, <font color="teal">"?????"</font>))
    str2 = Replace(str2, <font color="teal">"  "</font>, <font color="teal">" "</font>)
    <font color="blue">With</font> myRange.Find
        .Forward = True
        .MatchCase = False
        .Wrap = wdFindContinue
        .Text = str1
        .Replacement.Text = str2
        .Execute Replace:=wdReplaceAll
    <font color="blue">End</font> <font color="blue">With</font>
    i = i + <font color="darkblue"><b>1</b></font>
<font color="blue">Wend</font>
<font color="00AA00">'MsgBox <font color="teal">"Произведено замен - "</font> & CStr(i - 1)</font>
<font color="blue">Set</font> mini = <font color="blue">Nothing</font>
<font color="blue">If</font> Dir$(<font color="teal">"c:\arm-2\merge.txt"</font>) <> <font color="teal">""</font> <font color="blue">Then</font>
    <font color="blue">Kill</font> <font color="teal">"c:\arm-2\merge.txt"</font>
<font color="blue">End</font> <font color="blue">If</font>
Selection.HomeKey
<font color="blue">End</font> <font color="blue">Sub</font>

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.182 из 5
Похожие ответы