Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - [решено] свойства *.dwg файла в документ Word

Ответить
Настройки темы
VBA - [решено] свойства *.dwg файла в документ Word

Пользователь


Сообщения: 60
Благодарности: 1

Профиль | Отправить PM | Цитировать


Здравствуйте, помогите пожалуйста с решением следующей задачи: в папке есть Паспорт.doc и Название_файла.dwg (единственный *.dwg в директории) , в паспорте нужно отобразить тремя полями: дату и время последнего изменения (до секунд), полный объем в байтах (размер, а не на "диске") и название файла *.dwg. Нашел макрос но только для экселя
К сожалению связка word-exсel не подходит.

Отправлено: 20:55, 18-09-2012

 

Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата firstarey:
как добавить вывод автора последних изменений ? »
firstarey, нет такого свойства. Может быть просто «Автор».

Если а) данное свойство поддерживается документом и б) если Проводник имеет доступ к этому свойству, то можно попробовать.

Вот пример получения значения свойства:
читать дальше »
Код: Выделить весь код
Option Explicit

WScript.Echo GetProperty("E:\Песочница\0264\марк.xlsx", "Автор")

WScript.Quit 0
'=============================================================================

'=============================================================================
Function GetProperty(strPath, strProperty)
	Dim objFile
	
	Dim objFolder
	Dim objFolderItem
	
	Dim intPropertyNumber
	
	With WScript.CreateObject("Scripting.FileSystemObject")
		If Not .FileExists(strPath) Then
			WScript.Echo "Can't find file [" & strPath & "]."
			
			Exit Function
		End If
		
		Set objFile = .GetFile(strPath)
	End With
		
	With WScript.CreateObject("Shell.Application")
		Set objFolder = .NameSpace(objFile.ParentFolder.Path)
		
		If Not objFolder Is Nothing Then
			Set objFolderItem = objFolder.ParseName(objFile.Name)
			
			If Not objFolderItem Is Nothing Then
				intPropertyNumber = GetPropertyNumberByName(strProperty)
				
				If IsEmpty(intPropertyNumber) Then
					WScript.Echo "Can't find property name [" & strProperty & "]."
					
					Exit Function
				End If
				
				GetProperty = objFolder.GetDetailsOf(objFolderItem, intPropertyNumber)
			Else
				WScript.Echo "Can't parse file name [" & objFile.Name & "]."
			End If
		Else
			WScript.Echo "Can't get folder [" & objFile.ParentFolder.Path & "]."
		End If
	End With
End Function
'=============================================================================

'=============================================================================
Function GetPropertyNumberByName(strProperty)
	Dim objFolder
	Dim i
	
	With WScript.CreateObject("Shell.Application")
		Set objFolder = .NameSpace("shell:System")
		
		If Not objFolder Is Nothing Then
			For i = 0 To 2^8 - 1
				If LCase(objFolder.GetDetailsOf(, i)) = LCase(strProperty) Then
					GetPropertyNumberByName = i
					
					Exit For
				End If
			Next
		End If
	End With
End Function
'=============================================================================

Отправлено: 11:29, 05-06-2013 | #21



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 102
Благодарности: 8

Профиль | Отправить PM | Цитировать


Iska, благодарю за ответ.
отчего то думал что авторство последних изменений сохраняется *pardon*

Отправлено: 14:30, 05-06-2013 | #22


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


firstarey, всё возможно — я этого попросту не знаю, поскольку у меня нет ни развёрнутого AutoCad'а, ни его «тёзок» (если речь по прежнему о документах формата dwg; если найдёте. что-таки есть — дайте знать, попробую почитать документацию на предмет доступа посредством Automation). Потому я привёл пример из доступных мне.

Отправлено: 16:26, 05-06-2013 | #23


Пользователь


Сообщения: 60
Благодарности: 1

Профиль | Отправить PM | Цитировать


Есть такое свойство, %<\AcVar LastSavedBy>% это данные для вставки в текст AutoCad
Как получить к нему доступ не знаю, но есть решения экспорта данных из открытого AutoCAD. Также это может быть полезным.

Отправлено: 17:20, 05-06-2013 | #24


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Sta1917, понятно.

Теоретически, сделать можно. Но желания заниматься подсчётом смещений нет ни малейшего.

У Вас вообще что? Какой продукт установлен?

Отправлено: 17:57, 05-06-2013 | #25


Пользователь


Сообщения: 60
Благодарности: 1

Профиль | Отправить PM | Цитировать


Думаю лучше воспользоваться готовым решением экспорта в эксель с dwg.ru

Отправлено: 03:00, 06-06-2013 | #26


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Воспользуйтесь.

Отправлено: 03:11, 06-06-2013 | #27


Пользователь


Сообщения: 102
Благодарности: 8

Профиль | Отправить PM | Цитировать


Изначально полагалось что это расположено в свойствах файла, как например дата последнего изменения документа и, соответственно, возможно доработать предложенный в этой теме скрипт.

На данный момент остановился на том, что изменил предложенный Iska шаблон под свои нужды (полный путь до файла, имя, дата последнего изменения, последнего доступа, размер. не хватает лишь автора последнего изменения).

Раз уж все не так просто, то на том и остановимся, спасибо откликнувшимся.

Отправлено: 08:42, 06-06-2013 | #28


Ветеран


Сообщения: 27449
Благодарности: 8088

Профиль | Отправить PM | Цитировать


Цитата firstarey:
Изначально полагалось что это расположено в свойствах файла, как например дата последнего изменения документа и, соответственно, возможно доработать предложенный в этой теме скрипт. »
Увы, нет. Это внутреннее свойство документа, и, судя по общедоступной информации, не транслируется Проводнику (кое-кто предлагает купить библиотеку, которая будет это делать).
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:03, 06-06-2013 | #29



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - [решено] свойства *.dwg файла в документ Word

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2007 - [решено] приложению Word не удалось открыть документ... Vlad_PC Microsoft Office (Word, Excel, Outlook и т.д.) 14 27-01-2016 17:03
Delphi - [решено] Как из Delphi запаролить документ Word? game_Racer Программирование и базы данных 3 18-10-2011 16:27
Разное - [решено] Как найти документ Word`а по его содержимому DeepWaters Microsoft Office (Word, Excel, Outlook и т.д.) 11 10-08-2011 09:29
2007 - [решено] Не открывается документ Ofice Word 2003 Chev_Chelios Microsoft Office (Word, Excel, Outlook и т.д.) 13 27-07-2011 22:01
Вставка данных в документ word zvezda_t Вебмастеру 6 12-10-2010 14:03




 
Переход