2007 - [решено] Долго открываются документы MS Word.

Аватара пользователя
Petya V4sechkin

Re: 2007 - [решено] Долго открываются документы MS Word.

Сообщение Petya V4sechkin »

Brainiacs, в логе попытки открыть шаблон в несуществующей сетевой папке

\\fileserver2\USERS$\sba\My Documents\Brand Manual\Brand Manual\templates Norit russia\Templates NV\Norit NV - brief - ENG, V060403.dot
Удаление метаданных из документов в Word 2003
Работа с шаблонами в программах выпуска 2007 системы Microsoft Office
Аватара пользователя
Brainiacs

Re: 2007 - [решено] Долго открываются документы MS Word.

Сообщение Brainiacs »

Цитата Brainiacs:



Да, именно так и всё очень быстро открывается. ( Ну он не полный путь пишет конечно, который по умолчанию в случае Office 2007 - "C:\Users\UserName\AppData\Roaming\Microsoft\Шаблоны", а просто Normal.dotm)
2007 - [решено] Долго открываются документы MS Word.




Спасибо, ясно. Проверил — можно попробовать сделать. Примерный код прост донельзя:



Код:

Код: Выделить всё

    With ActiveDocument
        .AttachedTemplate = ""
        .Save
    End With

Уточните следующее…


Цитата Iska:



Как Вам удобнее будет указать все эти файлы?
2007 - [решено] Долго открываются документы MS Word.




Я имел в виду:



1) как расположены эти документы:



* в одной папке;

* в нескольких папках;

* в одной папке и вложенных в неё;

* разбросаны произвольно по всему дисковому пространству?



2) как эти документы (с присоединённым шаблоном:


Цитата Petya V4sechkin:



\\fileserver2\USERS$\sba\My Documents\Brand Manual\Brand Manual\templates Norit russia\Templates NV\Norit NV - brief - ENG, V060403.dot
2007 - [решено] Долго открываются документы MS Word.




соотносятся своим расположением с другими документами Word?



3) Данный шаблон единственный (тогда можно перебирать всё подряд, ориентируясь на точное имя шаблона) или может статься, могут быть и другие «тормозящие» документы с иным несуществующим шаблоном?



Проще говоря — каким образом указать эти документы среди прочих файлов наиболее удобным для Вас способом. Вы ведь не будете тысячу раз выбирать в диалоговом окне «Open File» по одному документу Изображение?!
Аватара пользователя
Iska

Re: 2007 - [решено] Долго открываются документы MS Word.

Сообщение Iska »

Iska




Цитата Iska:



Я имел в виду: 1) как расположены эти документы: * в одной папке; * в нескольких папках; * в одной папке и вложенных в неё; * разбросаны произвольно по всему дисковому пространству?



Собственно, чтобы упростить задачу, я могу собрать их все, в одной папке, они конечно же в свою очередь разбросаны по всяким папкам!!!




Цитата Iska:



2) как эти документы (с присоединённым шаблоном:



Безусловно с некоторыми из этих файлов, находятся и нормальные!!!




Цитата Iska:



3) Данный шаблон единственный......



А вот этот вариант, я думаю самый правильный, т.к. если найдется документ с другим шаблоном, то в скрипте (как я понимаю)

можно будет заменить имя шаблона на нужное (и мало того использовать его для какого-нибудь другого массового изменений вордовских файлов) !!!!

Так как я не думаю, что найдется ещё один "гений"(P.S. а как бы Вы его назвали, в ПМ))) ) , который в документах предназначенных

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



Ну и к делу: если написание скрипта не очень времязатратно, я бы был очень благодарен Вам (ну и безусловно с меня пиво - уже), если бы Вы помогли решить эту, я бы сказал не проблему, а глупость?!?!



With Best Regards

Brainiacs
Аватара пользователя
Iska

Re: 2007 - [решено] Долго открываются документы MS Word.

Сообщение Iska »

Цитата Brainiacs:



Собственно, чтобы упростить задачу, я могу собрать их все, в одной папке, они конечно же в свою очередь разбросаны по всяким папкам!!!
2007 - [решено] Долго открываются документы MS Word.




Раз Вы можете проделать такое — я предложу следующее решение: собрать все пути к потребным файлам в текстовый файл (который уже и будет обрабатывать скрипт/макрос).



Сделать сие можно с помощью какого-либо стороннего файлового менеджера, например, Far Manager'а или Total Commander'а, або с помощью какого-либо расширения контекстного меню, позволяющего скопировать из результатов поиска Windows пути к файлам, например, Open++ или FileMenu Tools и т.п (в случае поиска Windows у меня, к сожалению, в список попадают и документы из zip-архивов).



Одним словом, у Вас должен получиться в итоге текстовый файл в кодировке ANSI примерно такого вида:



Код:

Код: Выделить всё

C:\Temp\Hello World.doc
…
…
E:\Песочница\0053\kopiya.doc
E:\Песочница\0014\0001\Обзор объекта автоматизации Photoshop.doc

в котором будут находиться пути к потребным документам.



Вот скрипт vbscript:


читать дальше »




Код:

Код: Выделить всё

Option Explicit
Dim strDocumentList
Dim strBadTemplate
Dim strDocument
Dim objFSO
Dim objWord
strDocumentList = "E:\Песочница\0116\DocumentList.txt"
strBadTemplate  = "\\fileserver2\USERS$\sba\My Documents\Brand Manual\Brand Manual\templates Norit russia\Templates NV\Norit NV - brief - ENG, V060403.dot"
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists(strDocumentList) Then
	Set objWord = WScript.CreateObject("Word.Application")
	With objFSO.OpenTextFile(strDocumentList)
		Do Until .AtEndOfStream
			strDocument = .ReadLine()
			If objFSO.FileExists(strDocument) Then
				WScript.Echo strDocument
				With objWord.Documents.Open(strDocument)
					If .AttachedTemplate = strBadTemplate Then
						WScript.Echo "  Template found in document [" & strDocument & "]"
						.AttachedTemplate = "Normal.dotm"
						.Save
					End If
					.Close
				End With
			Else
				WScript.Echo "Document [" & strDocument & "] not found"
			End If
		Loop
		.Close
	End With
	objWord.Quit
	Set objWord = Nothing
Else
	WScript.Echo "Document list [" & strDocumentList & "] not found"
End If
Set objFSO = Nothing
WScript.Quit 0





Укажите в нём в переменной «strDocumentList» путь к Вашему файл-списку с собранными документами и попробуйте.
Аватара пользователя
Brainiacs

Re: 2007 - [решено] Долго открываются документы MS Word.

Сообщение Brainiacs »

Iska




Цитата Iska:



Я имел в виду: 1) как расположены эти документы: * в одной папке; * в нескольких папках; * в одной папке и вложенных в неё; * разбросаны произвольно по всему дисковому пространству?



Собственно, чтобы упростить задачу, я могу собрать их все, в одной папке, они конечно же в свою очередь разбросаны по всяким папкам!!!




Цитата Iska:



2) как эти документы (с присоединённым шаблоном:



Безусловно с некоторыми из этих файлов, находятся и нормальные!!!




Цитата Iska:



3) Данный шаблон единственный......



А вот этот вариант, я думаю самый правильный, т.к. если найдется документ с другим шаблоном, то в скрипте (как я понимаю)

можно будет заменить имя шаблона на нужное (и мало того использовать его для какого-нибудь другого массового изменений вордовских файлов) !!!!

Так как я не думаю, что найдется ещё один "гений"(P.S. а как бы Вы его назвали, в ПМ))) ) , который в документах предназначенных

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



Ну и к делу: если написание скрипта не очень времязатратно, я бы был очень благодарен Вам (ну и безусловно с меня пиво - уже), если бы Вы помогли решить эту, я бы сказал не проблему, а глупость?!?!



With Best Regards

Brainiacs
Аватара пользователя
Iska

Re: 2007 - [решено] Долго открываются документы MS Word.

Сообщение Iska »

Цитата Brainiacs:



И ещё он когда echo отрабатывает, это ж надо будет на каждый файл "ок" нажимать, иначе он дальше не идет!!!
2007 - [решено] Долго открываются документы MS Word.




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



Код:

Код: Выделить всё

cscript.exe //nologo ""


Цитата Brainiacs:



Не работает, что-то скриптик! Файл он открывает, но шаблон не удаляет и не заменяет!
2007 - [решено] Долго открываются документы MS Word.




1. А он хоть находит-то документы с шаблоном? То есть пишет хоть иногда «Template found in document [bla-bla-bla]»?

2. Если пишет, то попробуйте следующие варианты:

* именно пустую строку, а не пробел:



Код:

Код: Выделить всё

.AttachedTemplate = ""

* полный путь к «Normal.dotm»:



Код:

Код: Выделить всё

.AttachedTemplate = "C:\Users\UserName\AppData\Roaming\Microsoft\Шаблоны\Normal.dotm"

подставив вместо «UserName» конкретное значение.




Цитата Brainiacs:



Я надеюсь Вы не против, я разместил Ваш скриптик, ещё на нескольких форумах, для доработки!

Если против, могу удалить?!
2007 - [решено] Долго открываются документы MS Word.




Ничуть. Только за. Ибо у меня-то нет Office 2007, я пробую на предыдущей версии.
Аватара пользователя
Brainiacs

Re: 2007 - [решено] Долго открываются документы MS Word.

Сообщение Brainiacs »

Iska



Не работает, что-то скриптик! Файл он открывает, но шаблон не удаляет и не заменяет!

И ещё он когда echo отрабатывает, это ж надо будет на каждый файл "ок" нажимать, иначе он дальше не идет!!!



Пробовал, я .AttachedTemplate вместо "Normal.dotm" --> " ", ворд (visual basic) так делает когда просто стираешь путь к шаблону, но тоже не помогает!

Как-то надо просто удалить путь к шаблоны и сохранить файл, и ворд потом при открытии сам к "Normal.dotm" обратиться!



P.S.



Я надеюсь Вы не против, я разместил Ваш скриптик, ещё на нескольких форумах, для доработки!

Если против, могу удалить?!



With Best Regards

Brainiacs
Аватара пользователя
Iska

Re: 2007 - [решено] Долго открываются документы MS Word.

Сообщение Iska »

Значит, не находит. Ибо, если бы нашёл — писал бы ещё кроме пути, как я уже сказал выше, следующее:


Цитата:



Template found in document [bla-bla-bla]



Давайте-ка посмотрим, какие на самом деле там прикреплённые шаблоны. Выполните такой скрипт:



Код:

Код: Выделить всё

Option Explicit
Dim strDocumentList
Dim strDocument
Dim objFSO
Dim objWord
strDocumentList = "E:\Песочница\0116\DocumentList.txt"
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists(strDocumentList) Then
	Set objWord = WScript.CreateObject("Word.Application")
	With objFSO.OpenTextFile(strDocumentList)
		Do Until .AtEndOfStream
			strDocument = .ReadLine()
			If objFSO.FileExists(strDocument) Then
				WScript.Echo strDocument
				With objWord.Documents.Open(strDocument)
					WScript.Echo "  " & .AttachedTemplate
					.Close
				End With
			Else
				WScript.Echo "Document [" & strDocument & "] not found"
			End If
		Loop
		.Close
	End With
	objWord.Quit
	Set objWord = Nothing
Else
	WScript.Echo "Document list [" & strDocumentList & "] not found"
End If
Set objFSO = Nothing
WScript.Quit 0

в виде:



Код:

Код: Выделить всё

cscript.exe //nologo "" >c:\0001.txt

опять указав в «strDocumentList» путь к Вашему списку. Полученный в результате исполнения скрипта файл «c:\0001.txt» упакуйте в архив и прикрепите к сообщению (либо выложите на обменник, а сюда — ссылку).
Аватара пользователя
Brainiacs

Re: 2007 - [решено] Долго открываются документы MS Word.

Сообщение Brainiacs »

Цитата Iska:



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



Понял!




Цитата Iska:



1. А он хоть находит-то документы с шаблоном? То есть пишет хоть иногда «Template found in document [bla-bla-bla]»?



Да файл он находит, открывает его и закрывает, ничего не меняется (дата изменения не меняется, как будто бы просто - открыл/закрыл)!







пишет только см. скрин




Цитата Iska:



2. Если пишет, то попробуйте следующие варианты:



Никакой из вариантов - не работает!



With Best Regards

Brainiacs
Аватара пользователя
Iska

Re: 2007 - [решено] Долго открываются документы MS Word.

Сообщение Iska »

Цитата Brainiacs:



Да нет, всё он находит, файл открывает (я вижу это т.к. создаётся темповский файл ворда см. аттач) но не меняется дата изменения, такое впечатление, что он его просто закрывает и открывает!!!
2007 - [решено] Долго открываются документы MS Word.




Естественно. Скрипт не будет ничего менять-сохранять, пока ему не попадётся документ с искомым присоединённым шаблоном.




Цитата Brainiacs:



Только там не normal.dotm, а \\fileserver2\USERS$\sba\My Documents\Brand Manual\Brand Manual\templates Norit russia\Templates NV\Norit NV - brief - ENG, V060403.dot!!!!!
2007 - [решено] Долго открываются документы MS Word.




Brainiacs, вот я и хочу увидеть этот самый:


Цитата Brainiacs:



\\fileserver2\USERS$\sba\My Documents\Brand Manual\Brand Manual\templates Norit russia\Templates NV\Norit NV - brief - ENG, V060403.dot
2007 - [решено] Долго открываются документы MS Word.




во вложенном файле «0001.txt». Но не вижу.



«Натравите» скрипт из
2007 - [решено] Долго открываются документы MS Word.
на полный список документов, а не на один-единственный документ.
Ответить

Вернуться в «Microsoft Office (Word, Excel, Outlook и т.д.)»