powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / wrdApp.Documents.Add(Template:=FileName)
7 сообщений из 7, страница 1 из 1
wrdApp.Documents.Add(Template:=FileName)
    #32715521
Ворд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Знатоки свойств/методов ворда, подскажите, плиз:

создаю новые документа из шаблона так:
Код: plaintext
1.
    Set wrdApp = CreateObject("Word.Application")
    Set OpenWord = wrdApp.Documents.Add(Template:=FileName)    

но эта нехорошая аппликация ругается при втором (и более) запуске на то, что файл FileName уже открыт. Т.е. выдает диалоговое окно:
автор файл FileName уже используется,
{уведомить/только чтение/отмена}
при этом в новых документах можно все править независимо от ругательства.
Как задать параметры .Add, (или другого метода), чтобы окно с ругательством не появлялось.



ЗЫ : пока вижу (реализовал) только такую 2-х ходовку:
1. Создание нового - пустого
Код: plaintext
Set OpenWord = wrdApp.Documents.Add
2. Вставка текста из темплейта).
Код: plaintext
OpenWord.InsertFile FileName,"",False,False,False
неужто нет соответственного параметра в .Add ?
...
Рейтинг: 0 / 0
wrdApp.Documents.Add(Template:=FileName)
    #32715541
Ворд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
очепятка
Код: plaintext
OpenWord.InsertFile FileName,"",False,False,False
читать:
Код: plaintext
OpenWord.Range().InsertFile FileName, "", False, False, False
...
Рейтинг: 0 / 0
wrdApp.Documents.Add(Template:=FileName)
    #32721642
_Pshada_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуй так:

Код: plaintext
1.
2.
3.
   
Set wrdApp = CreateObject("Word.Application")
Set OpenWord = wrdApp.Documents.Add
OpenWord.AttachedTemplate = FileName  
...
Рейтинг: 0 / 0
wrdApp.Documents.Add(Template:=FileName)
    #32724098
Ворд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не-а (ругается на непраильный формат файла)

кстати, после:
Set OpenWord = wrdApp.Documents.Add(Template:=FileName)
если FileName = "ххх.doc" - стандартный док файл - имеем:
?OpenWord.AttachedTemplate
NORMAL.DOT
если вы предлагаете заменить док файл на шаблон, - другое дело, но этого мне и не хотелось.
...
Рейтинг: 0 / 0
wrdApp.Documents.Add(Template:=FileName)
    #32724169
Pshada_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, я имела в виду что FileName='xxx.dot'
Т.е. создается новый документ на основе существующего шаблона.
...
Рейтинг: 0 / 0
wrdApp.Documents.Add(Template:=FileName)
    #32724699
Ворд
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
.DOT не помог. Та же ругань при попытке окрыть несколько. (Но я ведь переписываю сам файл шаблона при этом прямой записью - и ничего. Это ворд видимо помнит, что из чего получилось). Может таки ручечки какие-нть повыкручивать в Documents.Add ?


Ага, насчупал:

Проблема именно в том, что я открываю документ каждый раз в новом аппликухене - чтобы другими окнами не моргать, а в этом завершить все изменения и только потом показать. (А каждый аппликухен, надо понимать, держит свой список источников). т.е. вот так в ворде ошибка на всякое (второе и более) открытие
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Sub Макрос2()

ReDim wrdApp( 0  To  4 ) As Word.Application
Set wrdApp( 0 ) = CreateObject("Word.Application")
    wrdApp( 0 ).Documents.Add Template:= _
        "C:\Temp\AR.doc" _
        , NewTemplate:=False, DocumentType:= 0 
Set wrdApp( 1 ) = CreateObject("Word.Application")
    wrdApp( 1 ).Documents.Add Template:= _
        "C:\Temp\AR.doc" _
        , NewTemplate:=False, DocumentType:= 0 
Set wrdApp( 2 ) = CreateObject("Word.Application")
    wrdApp( 2 ).Documents.Add Template:= _
        "C:\Temp\AR.doc" _
        , NewTemplate:=False, DocumentType:= 0 
Set wrdApp( 3 ) = CreateObject("Word.Application")
    wrdApp( 3 ).Documents.Add Template:= _
        "C:\Temp\AR.doc" _
        , NewTemplate:=False, DocumentType:= 0 
Dim i As Long
For i =  0  To  3 
    wrdApp(i).Visible = True
Next i

Erase wrdApp
End Sub
если же убрать wrdApp(i) и открывать все в текущем ворде - никакой ошибки (никакого диалога не выводится) нет (вне зависимости от формата doc/dot). (я то вооще открываю из аксесса, и не проверяю наличия открытого ворда именно чтобы не связаваться с другими сеансами, с редактированием и т.п.)

Т.е. в аппликейшене надо свойство какое-то срубить в 0?
Просмотрел св-ва. Не нашел.
...
Рейтинг: 0 / 0
wrdApp.Documents.Add(Template:=FileName)
    #33161811
assa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
выходил так:
Код: plaintext
1.
    Set OpenWord = wrdApp.Documents.Add
    OpenWord.Range.InsertFile FileName, "", False, False, False  
и думал, что решение удачное,
однако попались документы с хитрым форматированием, которые при вставке слегонца расползались (на не то число страниц, какое надо)
пришлось еще раз проверить, в чем проблема.

Сремяга оказалась не в расширении, а в самом формате dot, т.е. где-то там видимо метка есть (хоть файл и получается того же размера, что и doc). И вот если делать новые документы из "сохраненного как шаблон", то нормально создается скоко угодно активных несохраненных на диск копий, не смотря на то, что при выгрузке самого шаблона на диск я приписываю ему расширение .doc . (блокировка обычного документа, являющегося шаблоном (в такой ситуации) - это некий непонятно к чему реализованный афторами ворда левый механизм... непанятна)
Мдя веку-чиз

т.е. вернулся к
Set OpenWord = wrdApp.Documents.Add(Template:=FileName)
но только из заведомого "шаблонного формата".
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / wrdApp.Documents.Add(Template:=FileName)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]