Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.88/16: Рейтинг темы: голосов - 16, средняя оценка - 4.88
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,328

На VB6 переименовать открытый файл Ворда

06.06.2012, 19:30. Показов 3241. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
здравствуйте, по сабжу как? вижу это примерно так, но есть пробелы в знаниях
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
    Dim ObjectWord As Object
    Set ObjectWord = GetObject(, "Word.Application")
    Dim ObjectOpenWord As Object
    Set ObjectOpenWord = ObjectWord.ActiveDocument
    
    Dim ObjectOpenWordPath As String
    ObjectOpenWordPath = ObjectOpenWord.Path
    
    Dim ObjectOpenWordName As String
    ObjectOpenWordName = ObjectOpenWord.Name
    
    Dim ObjectOpenWordFullName As String
    ObjectOpenWordFullName = ObjectOpenWord.FullName
    
    ObjectOpenWord.Close 'как закрывать без вопросов "Сохранить изменеия в документе", если были изменения???
    'как переименовать закрытый файл, в том числе и переместить
    
    'как открыть закрытый файл
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.06.2012, 19:30
Ответы с готовыми решениями:

Можно ли переименовать открытый файл *.doc
здравствуйте, как читал в факью My.Computer.FileSystem.RenameFile("Path", "Path2") это можно сделать, когда файлом является открытый...

Bat-файл не открывает уже кем-то открытый файл Word
Имеется файл .bat: @echo off start /b...

Как перезаписать открытый файл?
Открыл картинку, поместил в pictureBox, изменил в ней что-то. Как перезаписать файл без ошибок gdi и с тем же форматом файла?

21
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38195 / 21128 / 4309
Регистрация: 12.02.2012
Сообщений: 34,736
Записей в блоге: 14
06.06.2012, 20:25
SaveAs
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,328
06.06.2012, 20:35  [ТС]
а когда так
Visual Basic
1
ObjectOpenWord.SaveAs ("1.doc")
то по какому адресу сохраняет?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38195 / 21128 / 4309
Регистрация: 12.02.2012
Сообщений: 34,736
Записей в блоге: 14
06.06.2012, 20:46
В текущую директорию приложения...
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,328
06.06.2012, 20:56  [ТС]
Цитата Сообщение от Catstail Посмотреть сообщение
В текущую директорию приложения...
я и не сомневался, спросил потому что его там нет
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38195 / 21128 / 4309
Регистрация: 12.02.2012
Сообщений: 34,736
Записей в блоге: 14
06.06.2012, 21:01
Так я имел в виду не VB-приложения, а Word-приложения. Вообще, что стоит просто указать путь:

...saveAs(App.Path & "\Ку-ку.doc")

Сохранится, не сомневайся.
1
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,328
06.06.2012, 22:22  [ТС]
что за ерунда делаю пошагово, на строке
Visual Basic
1
ObjectOpenWordPath = ObjectOpenWord.Path
получаю мессагу
во время выполнения программы -2147417851 (80010105)
Ошибка автоматизации
Эф 8 жму и код пошёл дальше, строка кода дающая ошибку ведь плёвая

Добавлено через 1 час 0 минут
скажите и при таком коде
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Dim ObjectWord As Object
    Set ObjectWord = GetObject(, "Word.Application")
    Dim ObjectOpenWord As Object
    Set ObjectOpenWord = ObjectWord.ActiveDocument
          
    Dim ObjectOpenWordPath As String
    ObjectOpenWordPath = ObjectOpenWord.Path
    
    Dim ObjectOpenWordName As String
    ObjectOpenWordName = ObjectOpenWord.Name
    
    Dim ObjectOpenWordFullName As String
    ObjectOpenWordFullName = ObjectOpenWord.FullName
    
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    Dim file As Object
    Set file = fso.GetFile(ObjectOpenWord)
     
    ObjectOpenWord.SaveAs (ObjectOpenWordPath & "\" & "111.doc")
    file.Delete
никогда ошибки не будет??
как обойти если в файле открыто диалоговое окно как его закрыть?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38195 / 21128 / 4309
Регистрация: 12.02.2012
Сообщений: 34,736
Записей в блоге: 14
07.06.2012, 09:31
Тут, по-моему, вообще каша...

1) Set ObjectOpenWord = ObjectWord.ActiveDocument - т.е. ObjectOpenWord - это Word.Document

2) Set file = fso.GetFile(ObjectOpenWord) - не думаю, что fso "съест" этот объект...

Скажи простыми словами, что сделать-то надо?
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,328
07.06.2012, 20:29  [ТС]
Цитата Сообщение от Catstail Посмотреть сообщение
Скажи простыми словами, что сделать-то надо?
строго по сабжу
0
 Аватар для Апострофф
9908 / 3928 / 742
Регистрация: 11.10.2011
Сообщений: 5,908
07.06.2012, 20:45
ObjectOpenWord
Цитата Сообщение от F2
.SaveAs([FileName], [FileFormat], [LockComments], [Password], [AddToRecentFiles], [WritePassword], [ReadOnlyRecommended], [EmbedTrueTypeFonts], [SaveNativePictureFormat], [SaveFormsData], [SaveAsAOCELetter], [Encoding], [InsertLineBreaks], [AllowSubstitutions], [LineEnding], [AddBiDiMarks])
Может я чего не понял?
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38195 / 21128 / 4309
Регистрация: 12.02.2012
Сообщений: 34,736
Записей в блоге: 14
07.06.2012, 20:46
Вот и я - о том же...
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,328
07.06.2012, 20:53  [ТС]
Цитата Сообщение от Апострофф Посмотреть сообщение
.SaveAs
а старый то удалить нужно
0
 Аватар для Апострофф
9908 / 3928 / 742
Регистрация: 11.10.2011
Сообщений: 5,908
07.06.2012, 21:02
Цитата Сообщение от F2
Sub Kill(PathName)
Member of VBA.FileSystem
Где PathName - старое полное имя.

Не по теме:

тут даже FSO не нужно:D

0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,328
07.06.2012, 21:40  [ТС]
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
никогда ошибки не будет??
как обойти если в файле открыто диалоговое окно как его закрыть?
сделал
Visual Basic
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
27
28
29
30
Dim ObjectWord As Object
    Set ObjectWord = GetObject(, "Word.Application")
    
    Dim ObjectOpenWord As Object
    Set ObjectOpenWord = ObjectWord.ActiveDocument
              
    Dim ObjectOpenWordPath As String
    ObjectOpenWordPath = ObjectOpenWord.Path
    
    Dim ObjectOpenWordName As String
    ObjectOpenWordName = ObjectOpenWord.Name
    
    Dim ObjectOpenWordFullName As String
    ObjectOpenWordFullName = ObjectOpenWord.FullName
         
    'оператор для отлова ошибок, указывает, что при возникновении ошибки нужно переходить к следующей строке кода
    'On Error Resume Next
     
    'ошибка 4605 когда открыто диалоговое окно Найти или Заменить
    ObjectOpenWord.SaveAs (ObjectOpenWordPath & "\" & "w109.doc")
    MsgBox$ Err.Number
    If Err.Number = 4605 Then Beep
    'удалить файл ...
    Kill (ObjectOpenWordPath & "\" & ObjectOpenWordName)
    
    'установка объекта в значение Nothing требуется для освобождения памяти, которая была выделена для создания этого объекта
    Set ObjectWord = Nothing
    Set ObjectOpenWord = Nothing
 
End Sub
Добавлено через 1 минуту
так вот если строку 17 ремарчим ошибка на 20 й строке
а не ремарчим в мессаге на 21 строке сообщение 0 - почему так??
0
 Аватар для Апострофф
9908 / 3928 / 742
Регистрация: 11.10.2011
Сообщений: 5,908
07.06.2012, 21:55
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
а не ремарчим в мессаге на 21 строке сообщение 0 - почему так??
Visual Basic
1
21 if err then MsgBox$ Err.Number 'примерно так обрабатываются ошибки при On Error Resume Next
Добавлено через 1 минуту
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
так вот если строку 17 ремарчим ошибка на 20 й строке
А какая ошибка? Файл уже существует?
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,328
08.06.2012, 05:35  [ТС]
когда я это всё опробую я специально открываю окно найти и заменить
то есть провоцирую ошибку - она должна быть
так и не понял
Цитата Сообщение от Апострофф Посмотреть сообщение
в мессаге на 21 строке сообщение 0 - почему так??
0
 Аватар для Апострофф
9908 / 3928 / 742
Регистрация: 11.10.2011
Сообщений: 5,908
08.06.2012, 07:19
Катастрофа! Хватит придуриваться!
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
в мессаге на 21 строке сообщение 0 - почему так??
Это не моё, а твоё сообщение!

А ниже я объяснил, почему так
Visual Basic
1
21 if err then MsgBox$ Err.Number 'примерно так обрабатываются ошибки при On Error Resume Next
Если нет ошибки (Err=0), то зачем её (т.е. ноль) выводить?
1
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,328
08.06.2012, 13:38  [ТС]
Цитата Сообщение от Апострофф Посмотреть сообщение
Если нет ошибки (Err=0), то зачем её (т.е. ноль) выводить?
я спрашиваю почему её нет?, ведь она должна быть я её специально делаю сам своими руками осознанно
на вопрос почему я это делаю - ответ надо быть готовым ко всему и даже когда открыто это окно Найти и заменить на запуск проги

Добавлено через 26 минут
Цитата Сообщение от Апострофф Посмотреть сообщение
Если нет ошибки (Err=0), то зачем её (т.е. ноль) выводить?
строки кода:
Visual Basic
1
2
а = 8 + 7
MsgBox$ Err.Number
если здесь в месаге 0, то я не удивляюсь, всё верно
а в этом случае
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
ObjectOpenWord.SaveAs (ObjectOpenWordPath & "\" & "w109.doc")
* * MsgBox$ Err.Number
при открытом окне Найти и Заменить она должна быть или нет как по Вашему??
0
 Аватар для Апострофф
9908 / 3928 / 742
Регистрация: 11.10.2011
Сообщений: 5,908
08.06.2012, 14:19
Окно Найти и Заменить не модальное и на работе макроса не сказывается.
Попробуй вызвать Сохранить как...
0
1712 / 579 / 76
Регистрация: 10.04.2009
Сообщений: 9,328
08.06.2012, 19:13  [ТС]
Цитата Сообщение от Апострофф Посмотреть сообщение
Окно Найти и Заменить не модальное и на работе макроса не сказывается.
Попробуй вызвать Сохранить как...
согласен но почему вижу мессагу, всё в файле
заранее сорри что не сразу на форум, всё забываю как выкладывать, да и подготовка нужна сохранить в поинте
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.06.2012, 19:13
Помогаю со студенческими работами здесь

WinSock, открытый файл и connect
Здравствуйте! Столкнулся с проблемой (WinXP SP2): HANDLE hFile = CreateFile(...); //то есть, открываем файл //... здесь...

Экспорт в открытый файл word
Здравствуйте, Помогите решить проблему следующего плана: Запущена база акса, и уже открыт нужный документ word. На форме есть...

Закрыть файл, открытый пользователем
Добрый день. ...есть файл pdf, пользователь подписывает его электронной подписью и файл сохраняет под именем файл-signed.pdf, исходный...

Как скопировать открытый файл?
Вот собственно: Если файл кем либо открыт, то и FileCopy и FileSystem.FileCopy вызывает ошибку

Как прочитать открытый файл?
Всем привет! Пишу простейший код для открытия файла IO.File.Exists("Test.laccdb") Если файл закрыт, то программа замечательно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru