Вставка документа Word в книгу Excel (с использованием технологии OLE)

Function PasteOLEobject(ByVal filename$, ByRef TopLeftCell As Range, _
                        Optional ByVal Width%, Optional ByVal Height%) As ShapeRange
    ' вставляет на лист объект OLE (из файла filename$)
    ' и размещает его в нужном месте, совмещая левый верхний угол с ячейкой TopLeftCell
    ' если указаны размеры Width% или Height% - они задаются вствляемому объекту
    On Error Resume Next: Err.Clear
    Set PasteOLEobject = TopLeftCell.Worksheet.OLEObjects.Add(, filename$).ShapeRange
    If Err Then MsgBox "Вставка объекта невозможна!", vbCritical: End
    PasteOLEobject.Top = TopLeftCell.Top: PasteOLEobject.Left = TopLeftCell.Left
    On Error GoTo 0
    If Height% Then PasteOLEobject.Height = Height%
    If Width% Then PasteOLEobject.Width = Width%
    PasteOLEobject.Parent.Placement = xlFreeFloating ' убираем привязку к ячейкам
    PasteOLEobject.Line.Visible = 0 ' убираем рамку вокруг объекта
End Function
 
Sub ПримерИспользования_PasteOLEobject()
    filename = "D:\Проекты\описания\ИмяФайла.doc"
    ' вставляем объект шириной 575 пикселов, при этом подгоняя высоту строки под объект
    ActiveCell.RowHeight = PasteOLEobject(filename, ActiveCell, 575).Height
End Sub

Комментарии

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

А с чего вы решили, что эти компоненты у вас будут?
Я потому и написал, что данный вариант будет работать не на всех компах, - т.к. на большинство компов этих библиотек нет.
Если хотите сделать, чтобы у вас на компе работало, - не проблема найти и установить эти компоненты (или их аналоги)
Если же надо, чтобы созданное решение работало и на других компах, - забудьте про отображение документа Word на форме,
ибо штатных компонентов для этого дела в Windows / Office нет)

У меня Win 7, Office 2013, в библиотеке, компоненты DSO ActiveX Document Frame Control и Microsoft Rich Textbox Control не нашёл. Какими ещё компонентами можно воспользоваться?

Да, можно попробовать. (только не надейтесь, что ваш макрос потом будет работать на других компах)

Поместите на форму компонент DSO ActiveX Document Frame Control или Microsoft Rich Textbox Control

Эти компоненты поддерживают работу с документами Word (есть и другие компоненты)

Приветствую!
У меня вопрос, возможно ли создать OLE поле на форме в Excel, для отображения документа Word?
Спасибо!

Не такой знаток Excel как Вы. Спасибо что открыли для меня данную функцию в стандатных средствах

1. Возможность есть. Оплатить работу готовы?

2. Чем не устраивают встроенные возможности Excel по вставке OLE объектов?

(вкладка ВСТАВКА, группа ТЕКСТ, кнопка ОБЪЕКТ)

Здорово !
Есть ли фозможность чуть улучшить данное решение ?
1. Сделать на форме выбор файла
2. Расширение добавить .docx

Спасибо.

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
CAPTCHA
Подтвердите, пожалуйста, что вы - человек:
           __     _____   ___      _      ____  
__ _ / /_ |___ | |_ _| / \ / ___|
/ _` | | '_ \ / / | | / _ \ \___ \
| (_| | | (_) | / / | | / ___ \ ___) |
\__,_| \___/ /_/ |___| /_/ \_\ |____/
Введите код, изображенный в стиле ASCII-арт.

Не получается применить макрос? Не удаётся изменить код под свои нужды?

Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.