Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

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

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

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


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

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


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

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

 

Ветеран


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

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


Sta1917, выложите образец файла «Паспорт.doc», в котором будет указано, куда конкретно нужно поместить:
Цитата Sta1917:
тремя полями: дату и время последнего изменения (до секунд), полный объем в байтах »
Как это должно работать — заполнять «поля» в момент открытия документа или как иначе?

Отправлено: 22:02, 18-09-2012 | #2



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

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


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


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

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


В момент открытия, т.е. в word должны быть последние данные об изменениях.

Отправлено: 22:09, 18-09-2012 | #3


Ветеран


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

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


Sta1917, не хотите выкладывать — дело Ваше.

Вот Вам код:
читать дальше »
Код: Выделить весь код
Option Explicit

Private Sub Document_Open()
    Dim objRange As Range
    Dim objFSO As Object
    Dim objFile As Object
    
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    
    With ThisDocument
        If .Bookmarks.Exists("_DwgProp") Then
            With .Bookmarks.Item("_DwgProp").Range
                .Expand Unit:=wdTable
                .Tables.Item(1).Delete
            End With
        End If
        
        Set objRange = .Content
        objRange.Collapse Direction:=wdCollapseStart
        
        With .Tables.Add(Range:=objRange, NumRows:=3, NumColumns:=2)
            .Cell(1, 1).Range.Text = "Название файла"
            .Cell(2, 1).Range.Text = "Дата и время последнего изменения"
            .Cell(3, 1).Range.Text = "Объем файла"
            
            For Each objFile In objFSO.GetFolder(.Parent.Path).Files
                If UCase(objFSO.GetExtensionName(objFile.Name)) = UCase("dwg") Then
                    .Cell(1, 2).Range.Text = objFile.Name
                    .Cell(2, 2).Range.Text = CStr(objFile.DateLastModified)
                    .Cell(3, 2).Range.Text = CStr(objFile.Size)
                    
                    Exit For
                End If
            Next objFile
            
            Set objRange = .Range
        End With
        
        .Bookmarks.Add Name:="_DwgProp", Range:=objRange
        
        Set objRange = Nothing
    End With
    
    Set objFSO = Nothing
End Sub

Добавляйте его в модуль «ThisDocument» Вашего документа «Паспорт.doc» и правьте по собственному усмотрению.
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:44, 18-09-2012 | #4


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


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

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


Спасибо, за внимание к вопросу. Не думал что там все так сложно. Завтра с работы принесу - выложу.

Последний раз редактировалось Sta1917, 19-09-2012 в 00:42.


Отправлено: 00:36, 19-09-2012 | #5


Ветеран


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

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


Sta1917, опробовать можете и сейчас, создав рядом с документом, в который Вы поместите код, любой файл с расширением «.dwg».

Отправлено: 01:39, 19-09-2012 | #6


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


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

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


Работает как надо, только:
1. можно чтобы данные оставались, если в папке нет dwg, или преобразовать макрос в текст;
2. убрать расширение файла (см. вложение)?

Последний раз редактировалось Sta1917, 22-09-2012 в 19:21.


Отправлено: 22:58, 19-09-2012 | #7


Ветеран


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

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


Sta1917, появился ряд вопросов:

1. Вы создаёте этот документ сами?
2. Если 1 — «да», то: этот документ основан на каком-то шаблоне или Вы просто создаёте новые копированием старого документа в новый?
3. Если 1 — «да», то: какова дальнейшая судьба документа: только распечатать или он как-то участвует в электронном документообороте и в дальнейшем?

4. Стоит ли сделать заполнение строк таблицы №2 данными по всем найденным файлам *.dwg в том же каталоге документа, а не только данными первого найденного файла *.dwg?

Судя по заголовку таблицы №2, мы делаем заполнение следующих столбцов:
  • Полное название формата
  • Директория
  • Файлы
  • Расширения
  • Дата и время последнего обновления
  • Размер (в байтах)

5. «Полное название формата» — скажите, какой текст у Вас отображается в Проводнике в режиме \Вид\Таблица в столбце «Тип» для файлов *.dwg?
6. «Директория» — что здесь должно быть? Имя родительской папки, в которой находится документ (без полного пути)?
7. Отчего в примере в «Размер (в байтах)» между разрядами мегабайт и килобайт использован неразрывный пробел, а между разрядами килобайт и байт — обычный пробел?

Цитата Sta1917:
или преобразовать макрос в текст; »
Ваш Вопрос не понятен. Уточните.

Отправлено: 06:44, 20-09-2012 | #8


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


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

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


1-3. Документ получается копированием старого, с последующей печатью и передачей заказчику (Папки с паспортом и *.dwg). В СЭД не участвует.
4. Стоит, оказывается мне всегда попадались частные случаи с одним файлом. В основном нужно как в прикрепленном файле, с вложенными папками.
5. Тип элементов "файл DWG", вы правы, не очень корректная формулировка, но пусть будет такой.
6. Да.
7. Это не принципиально, видимо чтобы не мегабайты не сползали.
Цитата Iska:
Ваш Вопрос не понятен. Уточните. »
Вопрос снимается. Чтобы можно передать паспорт отдельно от *.dwg. Решил копированием текста.

Отправлено: 19:23, 22-09-2012 | #9


Ветеран


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

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



Цитата Sta1917:
1-3. Документ получается копированием старого, с последующей печатью и передачей заказчику (Папки с паспортом и *.dwg). В СЭД не участвует. »
1. Так сам документ дальше Вас куда-то идёт или после распечатки его дальнейшая судьба не важна?
2. Есть ли возможность перейти на использование шаблона?

Цитата Sta1917:
4. Стоит, оказывается мне всегда попадались частные случаи с одним файлом. В основном нужно как в прикрепленном файле, с вложенными папками. »
Ищем только в папках первого уровня? Не ищем ни в каталоге документа, ни в папках второго и более уровней — так?

Цитата Sta1917:
Вопрос снимается. Чтобы можно передать паспорт отдельно от *.dwg. Решил копированием текста. »
А всё-таки, что?

Попробуйте такой шаблон: Passport.zip (поместите его в «%AppData%\Microsoft\Шаблоны» или где у Вас хранятся личные шаблоны). После создания документа на его основе появится панель инструментов с единственной кнопкой.

Отправлено: 09:35, 23-09-2012 | #10



Компьютерный форум 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




 
Переход