1

Тема: Как открыть Excel из Word?

Как макросом открыть Excel из Word?

    Dim xlApp As Excel.Application
    Dim xlBook As Excel.Workbook

    'создаем новую книгу
    Set xlApp = New Excel.Application

Пишет, что тип Excel.Application в VBA Word  не определен (User-defined type not defined).

И еще один вопрос: Можно ли производить изменения в файле Excel макросом из программы Word?

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

2

Re: Как открыть Excel из Word?

Можно и нужно!
Во-первых надо в редакторе VBA в меню Tools открыть References и поставить галочку на Microsoft Excel вашей версии оффиса
Если в хотите вставить объект лист Excel то лучше вставлять в виде значка

3

Re: Как открыть Excel из Word?

aap77 пишет:

Можно и нужно!
Во-первых надо в редакторе VBA в меню Tools открыть References и поставить галочку на Microsoft Excel вашей версии оффиса

Спасибо. У меня это Microsoft Excel 14.0 Object Library. Все прекрасно работает!

Например:

    Dim xlApp As Excel.Application
    'открываем Excel
    Set xlApp = New Excel.Application
    'делаем приложение видимым
    xlApp.Visible = True
    'создаем новую книгу
    Set xlBook = xlApp.Workbooks.Add
    'редактируем файл Excel так, как обычно это делается в Excel
    xlBook.Sheets(1).Name = "Title"
    xlBook.Sheets("Title").Cells(1, 1) = "№"
    xlBook.Sheets("Title").Cells(1, 2) = "Наименование"

aap77 пишет:

Можно и нужно!
Если в хотите вставить объект лист Excel то лучше вставлять в виде значка

Александр, можно это уточнить? Что вы имеете в виду: "вставлять в виде значка"?

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

4

Re: Как открыть Excel из Word?

Когда Вы вставляете файл или лист эксель в виде значка он вставляется как объект InlineShape. Чтобы получить доступ к экселю, надо в InlineShape семейство OLEFormat свойство Object

5

Re: Как открыть Excel из Word?

aap77 пишет:

...надо в редакторе VBA в меню Tools открыть References и поставить галочку на Microsoft Excel...

Можно и без Excel в References:

Dim myExcel As Object
    Set myExcel = CreateObject("Excel.Application")
Макросы под заказ и готовый пакет - mtdmacro.ru

6

Re: Как открыть Excel из Word?

Вождь пишет:

Можно и без Excel в References:

Dim myExcel As Object
    Set myExcel = CreateObject("Excel.Application")

Можно, но чтобы писать код нужно знать свойства объекта

7

Re: Как открыть Excel из Word?

aap77 пишет:

....чтобы писать код нужно знать свойства...

А вот код Excel лучше и писать в Excel smile Удобнее, и тестируешь сразу. Потом достаточно скопировать.

Макросы под заказ и готовый пакет - mtdmacro.ru

8

Re: Как открыть Excel из Word?

Согласен, но многие этого не делают

9

Re: Как открыть Excel из Word?

Вождь пишет:
aap77 пишет:

...надо в редакторе VBA в меню Tools открыть References и поставить галочку на Microsoft Excel...

Можно и без Excel в References:

Dim myExcel As Object
    Set myExcel = CreateObject("Excel.Application")

Вождь, а как тогда обращаться к объектам Excel? Как использовать объект myExcel? Например, что делать с этим:

Dim xlApp As Excel.Application
Set xlApp = New Excel.Application

Будет ли правильно? :

Dim xlApp As myExcel.Application
Set xlApp = New myExcel.Application
Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

10

Re: Как открыть Excel из Word?

Set xlApp = New myExcel.Application

Эта строка только открывает новое приложения экселя, если у вас в файле ворда внедрен объект лист эксель или файл, то к нему надо обращаться через свойство OLEFormat.Object

11

Re: Как открыть Excel из Word?

Спасибо, коллеги, хорошо работает также и вот так:

    'устанавливаем связь с объектом Excel
    '(вместо Tools - References - Microsoft Excel)
    Dim myExcel As Object
    Set myExcel = CreateObject("Excel.Application")
    myExcel.Visible = True
    Set xlBook = myExcel.Workbooks.Add
    xlBook.Sheets(1).Name = "Title"
    xlBook.Sheets("Title").Cells(1, 1) = "№"
    xlBook.Sheets("Title").Cells(1, 2) = "Наименование"

Объектом Excel теперь стал myExcel, созданный с помощью метода CreateObject.

aap77 пишет:

если у вас в файле ворда внедрен объект лист эксель или файл, то к нему надо обращаться через свойство OLEFormat.Object

А как можно обратиться к данному объекту через указанное вами свойство OLEFormat.Object?

Удобной и приятной работы в Word!
Перевести спасибо на Яндекс кошелёк - 41001162202962; на WebMoney - R581830807057.

12

Re: Как открыть Excel из Word?

А как можно обратиться к данному объекту через указанное вами свойство OLEFormat.Object?

Это свойство доступно в объектах Shape и InlineShape