Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.04.2009, 17:15   #1
ruavia3
Форумчанин
 
Регистрация: 13.03.2009
Сообщений: 253
По умолчанию Открытие файла .doc с помощью VBA

Как открыть файл.doc в книге.xls с помощью макроса. Файл находится в той же дирректории, что и книга.xls?

Что-то из этой оперы?

Workbooks.Open Filename:=ThisWorkbook.Path & Application.PathSeparator & "файл.doc"
ruavia3 вне форума Ответить с цитированием
Старый 08.04.2009, 17:44   #2
ruavia3
Форумчанин
 
Регистрация: 13.03.2009
Сообщений: 253
По умолчанию

Или как открыть файл.doc с указанием дирректории через путь
ChDir _
"C:\...\...\файл.doc
ruavia3 вне форума Ответить с цитированием
Старый 08.04.2009, 18:03   #3
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Посмотрите макросы для работы с документами Word
(по ссылке есть примеры открытия файлов Word, их заполнения и сохранения)


Код:
Sub ОткрытьДокументWord(ByVal ПутьКФайлу As String)
    On Error Resume Next
 
    If Dir(ПутьКФайлу) = "" Then MsgBox "Файл  " & ИмяФайла & "  не найден ", vbExclamation, "Файл не найден": Exit Sub

    ПутьКФайлу = Chr(34) & ПутьКФайлу & Chr(34)    ' добавляем кавычки до и после пути к файлу
    CreateObject("WScript.Shell").Run ПутьКФайлу    ' аналогично двойному щелчку мыши на файле

End Sub
Ну или как-то так:
Код:
Sub ОткрытьДокументWord2()
    On Error Resume Next

    Set wa = CreateObject("Word.Application")    ' создаём приложение Word (без подключения библиотеки Word)

    wa.Visible = True    ' делаем Word видимым
    
    Set wd = wa.Documents.Open(ПутьКФайлу)
 
    wd.Paragraphs(18).Range.InsertAfter Текст    ' вставляем текст в нужное место (после 18-го параграфа)
    wd.Save    ' сохраняем документ
End Sub
А можно так:
Код:
Sub ОткрытьДокументWord(ByVal ИмяФайла As String)
    On Error Resume Next
    ПутьКФайлу = Replace(ThisWorkbook.FullName, ThisWorkbook.Name, ИмяФайла)
    If Dir(ПутьКФайлу) = "" Then MsgBox "Файл  " & ИмяФайла & "  не найден", vbExclamation, "Файл не найден": Exit Sub

    ПутьКФайлу = Chr(34) & ПутьКФайлу & Chr(34)    ' добавляем кавычки до и после пути к файлу
    CreateObject("WScript.Shell").Run ПутьКФайлу    ' аналогично двойному щелчку мыши на файле
End Sub

Sub ПримерИспользования()
    ОткрытьДокументWord "файл.doc"
End Sub


------------------ добавлено позже --------------------------
Цитата:
Сделал программу для заполнения документов данными из таблицы Excel (из Excel в Word)

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

В качестве шаблонов могут выступать следующие типы файлов:
  • документы Word (расширения DOC, DOCX, DOCM)
  • шаблоны Word (расширения DOT, DOTX, DOTM)
  • книги Excel (расширения XLS, XLSX, XLSM, XLSB)
  • шаблоны Excel (расширения XLT, XLTX, XLTM)
  • текстовые документы (расширения TXT, DAT, XML и т.д.)

В качестве исходных данных для заполнения, используется открытый в Excel файл (с таблицей, содержащей строку заголовка)

Количество шаблонов документов не ограничено

--------------------------------
В каких случаях вам может пригодиться эта надстройка:
  • если у вас в таблице Excel хранится список контрагентов (с их реквизитами), и вы хотите нажатием одной кнопки формировать договоры, акты или коммерческие предложения для каждого из них
  • если в вашей таблице Excel хранятся паспортные данные сотрудников, и вам необходимо быстро сформировать по шаблону приказы или прочие документы в формате Word, заполнив созданные документы данными сотрудников
  • подготовить письма, уведомления, грамоты в формате PDF или Word, заполнив созданные файлы информацией с листа Excel
  • и т.д. и т.п. - надстройку можно применять для создания любых документов на основе данных из Excel
--------------------------------

Скачать надстройку можно здесь:
http://excelvba.ru/programmes/FillDocuments

Последний раз редактировалось EducatedFool; 28.03.2012 в 13:36.
EducatedFool вне форума Ответить с цитированием
Старый 08.04.2009, 19:06   #4
Дмитрий Фукс
Пользователь
 
Регистрация: 17.03.2009
Сообщений: 41
По умолчанию

Если не трудно, напишите за одно код :
Как открыть файл Отчет.txt в книге Отчет.xls на листе Отчет1С с помощью макроса. Файл находится в той же дирректории, что и книга.xls?
Обязательно ли помещать их в одну папку или можно разместить файлы на рабочем столе?

Последний раз редактировалось Дмитрий Фукс; 08.04.2009 в 19:17.
Дмитрий Фукс вне форума Ответить с цитированием
Старый 08.04.2009, 23:03   #5
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию Эксперименты с ВБА

Да нет, не обязательно.

Я тут автору темы кое-что набацал... может, пригодится.

Код:
Sub GoToWordDocOpen()
'имитирует действия по открытию Word и предлагает открыть документ в тек. папке'
Dim strDumn As String

Shell "winword", vbNormalFocus 'открывает Windows Word и его окно'

SendKeys "%", True      'соответствует нажатию Alt - переход в гл. меню Word'
SendKeys "+~", True     'соотв. нажатию Shift-Enter - раскрывает меню'
SendKeys "~", True      'соотв. нажатию Enter - обычно открывает пункт "Открыть..."'

strDumn = Dir("*.doc*") 'имя 1-го документа Word в ТЕКУЩЕЙ ПАПКЕ'

SendKeys StrConv(strDumn, vbUnicode), True
'впечатываем это имя в поле ввода (чтобы затем открыть файл)'
End Sub
(Из-за SendKeys для Word и Excel 97 это не годится; в 2003-х — работает.)

Прямо в архиве кнопка (opWo) не работает, но можно скачать. И по альт-F11 посмотреть и скопировать выприведённый код.
Вложения
Тип файла: rar ExPeri.rar (6.9 Кб, 62 просмотров)

Последний раз редактировалось Sasha_Smirnov; 09.04.2009 в 15:24. Причина: неработоспособность кнопки.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 09.04.2009, 05:35   #6
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
Как открыть файл Отчет.txt в книге Отчет.xls на листе Отчет1С с помощью макроса.
С файлами ".txt" Excel "дружит" очень даже хорошо. Поместите следующий код в файл "Отчет.xls" и запустите макрос.
Код:
Sub ReadTxtToSheet()
    Application.ScreenUpdating = False
    FName = Application.GetOpenFilename("Text Files (*.txt), *.txt")
    If FName = False Then Exit Sub
    Workbooks.OpenText Filename:=FName, DataType:=xlDelimited, Tab:=True
    Cells.Copy ThisWorkbook.Sheets("Отчет1С").[A1]: ActiveWorkbook.Close
End Sub
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 09.04.2009, 09:07   #7
ruavia3
Форумчанин
 
Регистрация: 13.03.2009
Сообщений: 253
По умолчанию

EducatedFool, посмотри сообщение ниже.

Последний раз редактировалось ruavia3; 09.04.2009 в 10:33.
ruavia3 вне форума Ответить с цитированием
Старый 09.04.2009, 09:08   #8
ruavia3
Форумчанин
 
Регистрация: 13.03.2009
Сообщений: 253
По умолчанию

SAS888, есть варианты по открытию .doc* файла?
ruavia3 вне форума Ответить с цитированием
Старый 09.04.2009, 10:32   #9
ruavia3
Форумчанин
 
Регистрация: 13.03.2009
Сообщений: 253
По умолчанию

EducatedFool, спасибо, третий вариант сработал.

А можно в 3-м варианте вместо фиксированной дирректории сделать привязку к "корневой" папке, где находится сама книга.xls?
ruavia3 вне форума Ответить с цитированием
Старый 09.04.2009, 12:49   #10
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
А можно в 3-м варианте вместо фиксированной дирректории сделать привязку к "корневой" папке, где находится сама книга.xls?
А разве там сделано как-то иначе?

Код ПутьКФайлу = Replace(ThisWorkbook.FullName, ThisWorkbook.Name, ИмяФайла) формирует полный путь к файлу, предполагая, что файл файл.doc находится в той же папке, что и книга Excel, из которой запускается макрос.
EducatedFool вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ОТКРЫТИЕ DOC ФАЙЛОВ KurtWagner Компоненты Delphi 3 04.02.2009 11:47
Запрет на открытие редактора VBA valerij Microsoft Office Excel 4 20.11.2008 18:28
Открытие .doc или .docx в MS Word MADDAN Microsoft Office Word 4 16.09.2008 21:55
Открытие файла с помощью моей программы igroman Общие вопросы Delphi 3 09.06.2008 09:12
При открытие в OpenDialog .doc-вский файл должен отображаться в RichEdit. doc to rtf Lemon Компоненты Delphi 9 07.06.2007 19:19