![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Ребятушки всем привет, прошу помощи или наставления на путь истинный!
С помощью бубнов я намуил вот такой код который ищет в PP определенный данные( в данном случае имеется только одна ссылка, но их будет много ) и заменяет их на другие. Код:
var
ppApp:variant;
ppPres, ppSlide, ppShape : Variant;
i, j : integer;
s : string;
procedure TForm1.Button1Click(Sender: TObject);
procedure FindAndReplace(ppPres: Variant; SearchStr, ReplaceStr: string);
begin
for i := 1 to ppPres.Slides.Count do
begin
ppSlide := ppPres.Slides.Item(i);
for j := 1 to ppSlide.Shapes.Count do
begin
ppShape := ppSlide.Shapes.Item(j);
s := ppShape.TextFrame.TextRange.Text;
s := StringReplace(s, SearchStr, ReplaceStr, [rfReplaceAll]);
ppShape.TextFrame.TextRange.Text := s;
end;
end;
end;
begin
ppApp:=CreateOleObject('PowerPoint. Application');
ppPres:= ppApp.Presentations.Open('D:\p.ppt' , False, False, True);
ppApp.visible:=true;
FindAndReplace(ppPres, '%сылка%', 'привет');
end;
end.Ребят вот сам попробовал Код:
var
ppApp,exel,ex:variant;
ppPres,ppSlide,ppShape: Variant;
i,j: integer;
s,e: string;
procedure TForm1.Button1Click(Sender: TObject);
procedure FindAndReplace(ppPres: Variant; SearchStr, ReplaceStr: string);
begin
for i:= 1 to ppPres.Slides.Count do
begin
ppSlide:= ppPres.Slides.Item(i);
for j:= 1 to ppSlide.Shapes.Count do
begin
ppShape:= ppSlide.Shapes.Item(j);
s:= ppShape.TextFrame.TextRange.Text;
s:= StringReplace(s, SearchStr, ReplaceStr, [rfReplaceAll]);
ppShape.TextFrame.TextRange.Text:=s;
end;
end;
end;
begin
exel:=CreateOleObject('Excel.Application');
exel.Workbooks.Open('D:\e.xls');
exel.visible:=true;
ppApp:=CreateOleObject('PowerPoint.Application');
ppPres:= ppApp.Presentations.Open('D:\p.ppt', False, False, True);
ppApp.visible:=true;
e:=exel.Range['a1'];
FindAndReplace(ppPres, '%ссылка%', e);
end;
end.Последний раз редактировалось M.A.D.M.A.N., 28.04.2014 в 10:13. |
|
#2
|
||||
|
||||
|
Цитата:
Код:
e := exel.Range['a1'].Value; // Ещё можно Value2 Цитата:
|
|
#3
|
|||
|
|||
|
Цитата:
Поменял переменные, но Value не помогло( |
|
#4
|
||||
|
||||
|
Цитата:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
exel: Variant;
e: String;
begin
exel := CreateOleObject('Excel.Application');
exel.Workbooks.Open('D:\e.xls');
exel.Visible := True;
e := exel.Range['A1'].Value;
ShowMessage(e);
exel.Quit;
end; |
|
#5
|
|||
|
|||
|
у меня тоже прекрасно работает если я работаю с одним екселем (т.е. например копирую одну ячейку в другую но при вставке в ПП получается ошибка. И если работать только с ПП (найти %ссылка% и заменить ее на значение) тоже все работает проблема получается только при совместной работе екселя и ПП.
|
|
#6
|
||||
|
||||
|
Цитата:
|
|
#7
|
|||
|
|||
|
Цитата:
может это сраная винда 8 или МС ОФИС новый ...но раньше то проблем таких особых небыло.. Цитата:
Последний раз редактировалось M.A.D.M.A.N., 23.04.2014 в 14:09. |
|
#8
|
||||
|
||||
|
Цитата:
|
| Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
meshkale (23.04.2014)
| ||
|
#9
|
|||
|
|||
|
poli-smen
А можно тебя попросить архив мне прислать с программой?может я что то не так делаю просто...( |
|
#10
|
||||
|
||||
|
Цитата:
На всякий случай я вложил в архив так же файлы "e.xls" и "p.ppt" на которых я проверял работоспособность исходника. |
|
#11
|
|||
|
|||
|
Цитата:
|