Сохраните внедренный документ Word в электронной таблице Excel на диск с помощью VBA - PullRequest
3 голосов
/ 03 марта 2010

У нас есть электронная таблица Excel, которая в настоящее время создает отчет с использованием шаблона Word, хранящегося в локальной сети компании. Это хорошо работает для внутренних пользователей, но не для тех, кто не подключен к локальной сети, например пользователи ноутбуков.

Руководство не хочет распространять шаблон в виде отдельного файла для внешних пользователей, но предпочитает внедрить его в электронную таблицу на скрытом листе. Затем при создании отчета предлагается, чтобы внедренный шаблон сохранялся во временном пути пользователя и создавался из него.

Мой вопрос: как я могу сохранить встроенный шаблон Word на диск, используя VBA. Казалось бы, простая задача, но я нигде не нашел решения в Google. Любая помощь будет оценена.

Ответы [ 2 ]

2 голосов
/ 03 марта 2010

Хорошо, думаю, у меня может быть ответ, но он проверен только в Excel 2010.

Sub SaveEmbedded()
Dim sh As Shape
Dim objWord As Object ''Word.Document
Dim objOLE As OLEObject

    ''The shape holding the object from 'Create from file'
    ''Object 2 is the name of the shape
    Set sh = ActiveSheet.Shapes("Object 2")

    ''Activate the contents of the object
    sh.OLEFormat.Activate

    ''The OLE Object contained
    Set objOLE = sh.OLEFormat.Object

    ''This is the bit that took time
    Set objWord = objOLE.Object

    ''Easy enough
    objWord.SaveAs2 Filename:="c:\docs\template.dot", FileFormat:= _
    wdFormatTemplate ''1=wdFormatTemplate
End Sub
0 голосов
/ 03 марта 2010

Проверьте документацию MSDN.

Я полагаю, вы ищете метод SaveAs.

Вот пример этого здесь; MSDN - VBA Ref - метод SaveAs

...