Help, Pls
Помогите, пожалуйста.
Нужен код процедуры в Excel, запускающий файл Word, находящийся в той же папке, что файл Excel, из которого процедура исполняется.
Что-то простое. Без DDE по возможности.
Зарание огромное спасибо.
[email]nosy_man@inbox.ru[/email]
BIBI, FRDS
Sub OpenDocumentsWord()
With CreateObject("Word.Application")
.Documents.Open ("имя_файла.doc")
.Visible = True
End With
End Sub
Попробуйте вот так :
Sub OpenDocumentsWord()
With CreateObject("Word.Application")
.Documents.Open ("имя_файла.doc")
.Visible = True
End With
End Sub
THKS,
Но это немного не то.
Дело в том, что мне нужно точно знать путь к файлу Word. Он находится в той же папке, что и файл Excel.
В паскале была функия, вытаскивавшая путь к текущему приложению. Есть ли что-то подобное здесь?
THKS VM in advance.
Вы сами написали, что файлы расположены в одной папке, а если оба файла находятся в одной папке, то указывать путь к файлу не нужно !!!
HIHI
Помогите, пожалуйста.
Нужен код процедуры в Excel, запускающий файл Word, находящийся в той же папке, что файл Excel, из которого процедура исполняется.
Что-то простое. Без DDE по возможности.
Зарание огромное спасибо.
[email]nosy_man@inbox.ru[/email]
BIBI, FRDS
В дополнение к ответу pashulka:
XlsPath = ActiveWorkbook.FullName
WrdPath = miD(XlsPath,1,InstrRev(XlsPath,"\")) & "wordfilename.doc"
Давайте будем VBA корректны :
- именно этот мой ответ в дополнении не нуждался, так как он целиком и полностью решал поставленную задачу. Другое дело, что автор топика зачем-то потребовал выдать код определяющий текущую папку, но изначально в вопросе этого не было.
- Ваш код будет работать только в MS Excel 2000 и выше
- собственно говоря текущую папку можно определить использовав Path, тогда весь код будет выглядеть, как :
Sub OpenDocumentsWord()
With CreateObject("Word.Application")
.Documents.Open (ActiveWorkbook.Path & "\" & "имя_файла.doc")
.Visible = True
End With
End Sub
To Blind Rain
Давайте будем VBA корректны :
- именно этот мой ответ в дополнении не нуждался, так как он целиком и полностью решал поставленную задачу. Другое дело, что автор топика зачем-то потребовал выдать код определяющий текущую папку, но изначально в вопросе этого не было.
- Ваш код будет работать только в MS Excel 2000 и выше
- собственно говоря текущую папку можно определить использовав Path, тогда весь код будет выглядеть, как :
End Sub
Да, наверное, я дал несовсем корректный совет.
Действительно, использование .Path здесь правильная вещь(эх, подзабыл малость).
Что касается умолчания пути - специально проверил при помещении файлов в "Мои документы" и в "C:\TEMP" для MS Word 2000. Ваш первоначальный код работает далеко не во всех случаях.
Просто интересно: в Excel может быть открыто множество книг, причем из разных каталогов. Можно конечно предположить, что при смене активной книги Excel меняет текущий рабочий каталог. Однако большинство Windows приложений по умолчанию ищет файлы в пути по месту запуска процесса, и по тем, что определены в PATH. Процесс - это Excel в ...\Office. Я лично, всегда стараюсь избегать подобных умолчаний - тогда код понятен и однозначен.
Хотя согласитесь, что Ваш код не будет работать в MS Excel 97. Так что совместными усилиями провозгласим мир во всём мире и .Path ...
Очень выручили. Проблема разрешилась.
BIBIBI