Имя: Пароль:
1C
1С v8
Изменение формата текста WORD
0 espe
 
26.04.12
10:52
Как через 1С, подчеркнуть слова в WORD
1 izekia
 
26.04.12
10:52
через селекшн
2 le_
 
26.04.12
10:53
(0) Открой для себя запись макроса.
3 espe
 
26.04.12
11:07
У меня WORD новый, где там "начать запись макроса" ?
4 espe
 
26.04.12
11:08
все нашел
5 espe
 
26.04.12
11:29
А как текст выделить необходимый???
6 le_
 
26.04.12
11:30
Необходимый - это какой?
7 espe
 
26.04.12
11:32
ну например подчеркнуть слово "Итоги"
8 le_
 
26.04.12
11:33
Cells.Find("Итоги")

Макрос записал?
9 espe
 
26.04.12
11:35
в ворде есть cells?
10 espe
 
26.04.12
11:35
да пробовал, но он поиск текста не записывает
11 espe
 
26.04.12
11:37
Документ.Content.Find.Text = "Итоги";
Для Каждого стр Из Объект.ПовесткаСобрания Цикл
  Документ.Content.Find.Execute();
  Документ.Content.Find.Font.Underline = 1;
КонецЦикла;    

Не подчеркивает...
12 le_
 
26.04.12
11:40
ЯчейкаИтоги = Лист.Cells.Find("Итоги");
   
Если ЯчейкаИтоги = Неопределено Тогда
   Возврат;
КонецЕсли;

ЯчейкаИтоги.Font.Underline = 1;
13 espe
 
26.04.12
11:44
Лист - это что...
Content.Cells есть, но нет метода Find
14 le_
 
26.04.12
11:53
(13) Там для excel, пардон.
В Word как-то так:
objWdRange = objWdDoc.Content
With objWdRange.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "Итоги"
End With
objWdRange = objWdRange.MoveStart(3, 1)
objWdRange = objWdRange.MoveEnd(3, 1)
objWdRange.Font.Underline = 1;
15 espe
 
26.04.12
11:58
.ClearFormatting
.Replacement.ClearFormatting - это что? Присвоить истина?
16 espe
 
26.04.12
11:58
или просто не влезно?
17 espe
 
26.04.12
11:58
*влезло
18 espe
 
26.04.12
12:00
метод такой?
19 espe
 
26.04.12
12:08
не работает...
20 le_
 
26.04.12
12:19
(19)
Процедура КнопкаВыполнитьНажатие(Кнопка)
   Wrd = Новый COMОбъект("Word.Application");
   Wrd.documents.Open("d:\итоги.docx");
   objWdRange = Wrd.ActiveDocument.Content;
   objWdRange.Find.Text = "Итоги";
   objWdRange.Find.Execute();
   Если objWdRange.Find.Found = True Тогда
       Selection = objWdRange.Sentences.First;
       Selection.Font.Underline = 1;
   КонецЕсли;
   Wrd.Visible = True;
КонецПроцедуры


После записи макроса, при переносе его в 1С, иногда возникает узнать значение какой-нибудь константы, которая используется в Excel или Word.
Это можно сделать через Object Browser (View - Object Browser)
http://img252.imageshack.us/img252/910/objectbrowser.png
21 espe
 
26.04.12
12:23
не работает
22 le_
 
26.04.12
12:24
(21) А у меня работает.
23 espe
 
26.04.12
12:24
не присваивается Find.Text
24 espe
 
26.04.12
12:26
Found = False
25 espe
 
26.04.12
12:52
Документ.Content.Find.Text = "Итоги";
   Документ.Content.Find.Execute();
   Если Документ.Content.Find.Found = True Тогда
       Selection = Документ.Content.Sentences.First;
       Selection.Font.Underline = 1;
   КонецЕсли;
26 espe
 
26.04.12
12:52
что не так?
27 le_
 
26.04.12
13:09
(26) Если текст находится в таблице, искать нужно в таблице.
28 espe
 
26.04.12
13:10
не в таблице
29 espe
 
26.04.12
13:13
замена на этот текст работает
30 le_
 
26.04.12
13:21
Попробуй так:
Процедура КнопкаВыполнитьНажатие(Кнопка)
   Wrd = Новый COMОбъект("Word.Application");
   Wrd.documents.Open("d:\итоги.docx");
   objWdRange = Wrd.ActiveDocument.Content;
   objWdRange.Find.Text = "итоги";
   objWdRange.Find.Execute();
   Count = objWdRange.Sentences.Count;
   Для i = 1 По Count Цикл
       objWdRange.Sentences(i).Font.Underline = 1;
   КонецЦикла;
   Wrd.Visible = True;
КонецПроцедуры
31 espe
 
26.04.12
13:26
а она не во всех предложениях подчеркнет???
32 espe
 
26.04.12
13:31
так и есть, все подчеркнет
33 espe
 
26.04.12
13:37
Count = Документ.Content.Sentences.Count;
   Для i = 1 По Count Цикл
       Если Найти(Документ.Content.Sentences(i).Text, "Итоги") Тогда
           Документ.Content.Sentences(i).Font.Underline = 1;
       КонецЕсли;    
   КонецЦикла;
Вот это работает, но хочется красивый вариант :-)
AdBlock убивает бесплатный контент. 1Сергей