| 
							sergius25
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 «  : 12-12-2006 14:11 »   | 
								
								 | 
							  
							 
							Подскажите, пожалуйста, как объявить переменную с текстом в Delphi, для того чтобы с ней(а точнее с текстом) мог работать макрос из Excel? 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							x77
							
								Модератор
								
								 
								  Offline
								Пол:   
								
								меняю стакан шмали на обратный билет с Марса.
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #1 : 12-12-2006 14:13 »   | 
								
								 | 
							  
							 
							не совсем понял.... чтобы Excel мог работать с "переменной в дельфи", надо на дельфи писать программу, которая будет поддерживать понятные экселю COM-интерфейсы... и я совсем не уверен, что это простая задача. обычно делается наоборот - программа, написанная на дельфи, работает с экселем. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							
						 | 
					 
				 
			 |  
		 
	 | 
	| 
		
		
	 | 
	
		
		
			
				
					
						
							x77
							
								Модератор
								
								 
								  Offline
								Пол:   
								
								меняю стакан шмали на обратный билет с Марса.
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #3 : 12-12-2006 15:13 »   | 
								
								 | 
							  
							 
							я всё равно не понял, что нужно    из дельфи с Экселем можно работать примерно так: var    Excel, WorkBook, Sheet: Variant;  begin    Excel := CreateOleObject('Excel.Application');     Excel.WorkBooks.Open(FileName,False);     WorkBook := Excel.WorkBooks.Item[1];     Sheet := Workbook.Sheets.Item[3];     Sheet.Cells[1,2]:='ASDFG';     Sheet.Cells[2,2]:=230;  
  и т.д.  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Последнее редактирование: 16-12-2007 13:45 от Алексей1153++ »
								 | 
								
									 
									Записан
								 | 
							  
							 
							
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							sergius25
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #4 : 12-12-2006 18:42 »   | 
								
								 | 
							  
							 
							x77  В Delphi должна быть объявлена переменная с каким-либо текстом, с которым будет работать макрос, созданый в Excel. Т.е. в Дельфи нужно прописать код, который откроет файл, к примеру, f.xls, запустит макрос под названием WordRevers, созданный в этом файле. Это макрос должен изменить порядок слов в тексте на обратный. В тексте с изменённым порядком слов первая буква в первом слове должна быть заглавной, а первая и последняя буквы в последнем слове должны быть строчными! Каждое слово текста, с изменённым порядком слов, нужно вывести в отдельную ячейку в Excel (т.е. в файле f.xls).  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							PooH
							
								Глобальный модератор
								
								 
								  Offline
								Пол:   
								
								... и можно без хлеба!
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #5 : 12-12-2006 21:16 »   | 
								
								 | 
							  
							 
							sergius25, ну, в общем вся необходимая информация у тебя еще есть, если что-то не понятно, задавай конкретные вопросы. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Удачного всем кодинга! -=x[PooH]x=- 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							sergius25
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #6 : 13-12-2006 15:18 »   | 
								
								 | 
							  
							 
							PooH   Как запустить макрос, прописанный в Excel, из Delphi и передать ему переменную с текстом? 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							x77
							
								Модератор
								
								 
								  Offline
								Пол:   
								
								меняю стакан шмали на обратный билет с Марса.
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #7 : 13-12-2006 15:32 »   | 
								
								 | 
							  
							 
							Excel.Application.Run (MacrosName) - не пробовал? 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							sergius25
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #8 : 17-12-2006 17:50 »   | 
								
								 | 
							  
							 
							Спасибо! А как передать ему переменную с текстом? 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							sergius25
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #9 : 18-12-2006 13:53 »   | 
								
								 | 
							  
							 
							Excel.Application.Run (MacrosName) - не пробовал? При использовании выдает ошибку - "Параметр является обязательным"  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							x77
							
								Модератор
								
								 
								  Offline
								Пол:   
								
								меняю стакан шмали на обратный билет с Марса.
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									«  Ответ #10 : 18-12-2006 14:06 »    | 
								
								 | 
							  
							 
							sergius25, попробуй просто через запятую перечислить параметры:
  Excel.Application.Run (MacrosName, Param1, Param2, ...)  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							sergius25
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #11 : 18-12-2006 18:21 »   | 
								
								 | 
							  
							 
							Вот код программы: var   Form1: TForm1;   Excel, WorkBook, Sheet, s: Variant;
  implementation
  procedure TForm1.Button1Click(Sender: TObject); begin   s:='test';   Excel := CreateOleObject('Excel.Application');   Excel.WorkBooks.Open('D:\f_.xls');   Excel.Application.Run('WordRevers', s) end; При нажатии на Button выдает ошибку - "Недопустимое число параметров".   
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Последнее редактирование: 16-12-2007 13:46 от Алексей1153++ »
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Igel
							
						 | 
						
							
								  | 
								
									
									 « Ответ #12 : 20-12-2006 17:39 »   | 
								
								 | 
							  
							 
							Прикольная идея. Афтор пиши исчо. Если это типа какое-то задание (контрольная), то что-то заковыристое. Если нет, то нужно посмотреть предметную область применения. Уж больно сложная задача для простой перестановки буковок. По поводу методик решения. Нужно В дельфи создать строку, запустить макрос Экселя который эту строку обработает. А) Возможно неправильно пересказана задача. Возможно просто передать строку в макрос экселя для последующей обработки. Это было-бы самое простое. И так во всей постановке Дельфи отводится роль стартера. Б) Почитал другую ветку форума, понил, что пролетел со своим умствованием. Понятно, что Связку Ворд - Эксель реализовали. Поэтому предложение сделать ОЛЕ-сервер на дельфи, который бы содержал одино свойство - строка. Научить макрос Эксель работать с ним. В Дельфи сделать Сервер автоматизации - плевое дело. В) Возможно еще куча вариантов хранения строки - Буфер, ДДЕ, что-то вроде с областью памяти можно зачудить, да банальный файл. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Ёжики, это не только ценные шкурки... 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							sergius25
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #13 : 21-12-2006 14:22 »   | 
								
								 | 
							  
							 
							Нда, в универе заработало!
  Всем большое спасибо за помощь! 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							x77
							
								Модератор
								
								 
								  Offline
								Пол:   
								
								меняю стакан шмали на обратный билет с Марса.
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #14 : 21-12-2006 14:31 »   | 
								
								 | 
							  
							 
							sergius25, что именно заработало? запуск макроса с параметрами, типа Excel.Application.Run (MacrosName, Param1, Param2, ...) ? 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							sergius25
							 
								Гость 
							 
						 | 
						
							
								  | 
								
									
									 « Ответ #15 : 23-12-2006 15:10 »   | 
								
								 | 
							  
							 
							sergius25, что именно заработало? запуск макроса с параметрами, типа Excel.Application.Run (MacrosName, Param1, Param2, ...) ? Да!  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
						 | 
					 
				 
			 |  
		 
	 | 
	 |