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
Спасибо.
Отправить комментарий