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 в книгу Excel (с использованием технологии OLE) |
- 35850 просмотров
Не получается применить макрос? Не удаётся изменить код под свои нужды?
Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.
Комментарии
А с чего вы решили, что эти компоненты у вас будут?
Я потому и написал, что данный вариант будет работать не на всех компах, - т.к. на большинство компов этих библиотек нет.
Если хотите сделать, чтобы у вас на компе работало, - не проблема найти и установить эти компоненты (или их аналоги)
Если же надо, чтобы созданное решение работало и на других компах, - забудьте про отображение документа 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
Спасибо.
Отправить комментарий