Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
Joey
Заводной мандарин
951 / 572 / 222
Регистрация: 05.05.2015
Сообщений: 3,273
Записей в блоге: 2
1

Как работать с excel-объектами, встроенными в Word-документ?

07.01.2016, 01:27. Просмотров 1091. Ответов 1
Метки нет (Все метки)

Вопрос к тем, кто знаком с OLE и работой с Word через com-интерфейс.

Есть документ Word, в нем встроенный лист Excel. Доступ к нему осуществляется так:

WordApp.ActiveDocument.Shapes.Item(1).

И это работает. Но с полученным объектом дальше работать не получается, например, не работают следующие два способа:

s:= WordApp.ActiveDocument.Shapes.Item(1).Cells[2,3].Text;
i:= WordApp.ActiveDocument.Shapes.Item(1).Range['B3'].Value;

Выдает ошибки типа "Method 'Cells' is not supported by automation object"
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.01.2016, 01:27
Ответы с готовыми решениями:

Как сделать проверку на то, открыт ли документ Word (Excel) или нет?
всем привет. как мне сделать проверку на то открыт ли документ(любой не конкретный) Word(Exel) или...

Открыть документ Word или Excel
Как написать код для кнопки, при нажатии которой открывался бы нужный мне WORDовский или...

Перенос данных из нескольких Excel в один документ Word
Здравствуйте уважаемые! Помогите понять как сделать следующее... В ходе работы некоторой...

Как работать с объектами Excel без визуального отображения?
На самом деле хотелось бы найти информацию как в памяти создавать рабочую книгу добавлять в нее...

Как открыть документ Word из VBA-Excel
Господа, есть несколько скромных вопросов, надеюсь на ваше участие: 1) Как открыть док-т Word из...

1
unifikator
495 / 351 / 231
Регистрация: 29.03.2015
Сообщений: 675
07.01.2016, 09:00 2
Лучший ответ Сообщение было отмечено Joey как решение

Решение

Рабочий код:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
unit MainU;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
MyWord: OLEVariant;
MyOLE: OLEVariant;
myexcel: OLEVariant;
implementation
 
{$R *.dfm}
uses ComObj;
procedure TForm1.FormCreate(Sender: TObject);
begin
MyWord:=CreateOleObject('Word.Application');
    MyWord.Visible:=true;
    MyWord.Documents.Open(getcurrentdir+'\document.doc');
    MyWord.ActiveDocument.Shapes.AddOLEObject(ClassType:='Excel.Sheet',Left:=10, Top:=10, Width:=100, Height:=100);
    MyOLE:=MyWord.ActiveDocument.Shapes.Item(1);
 
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
s,i:string;
begin
MyOle.OLEFormat.Object.Application.ActiveSheet.Cells[2,3].Value:='Go';
MyOle.OLEFormat.Object.Application.ActiveSheet.Range['B3'].Value:='Hello';
s:=MyOle.OLEFormat.Object.Application.ActiveSheet.Cells[2,3].Value;
i:=MyOle.OLEFormat.Object.Application.ActiveSheet.Range['B3'].Value;
showmessage(s+' '+i);
end;
 
end.
Прилагаю проект на Delphi.
0
Вложения
Тип файла: zip WordExcel.zip (211.1 Кб, 0 просмотров)
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.01.2016, 09:00

Как из макроса на Excel открыть известный документ Word?
Сабж

Как работать с книгой Excel из Word
Как вызвать EXCEL в WORDe?

E-mail рассылки встроенными объектами IIS?
Господа! Может, это уже обсуждалось, но тем не менее: расскажите, как лучше организовать массовые...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.