Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.04.2014, 11:38   #1
@лёнк@
 
Регистрация: 24.04.2014
Сообщений: 6
Восклицание Помогите брюнетке с написанием ооочень сложного макроса

Доброго времени суток!
Мне нужно упростить редактирование текста и я знаю, что в этом должен помочь макрос, но у меня не хватает знаний, чтобы его написать.
Пример прикрепила и подписала, где исходный текст и то, что должно получиться.
Если кто-то разберется, как облегчить мне жизнь, буду очень благодарна!
Вложения
Тип файла: doc пример.doc (23.5 Кб, 23 просмотров)
@лёнк@ вне форума Ответить с цитированием
Старый 24.04.2014, 11:46   #2
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Вам в бинарном, или в развёрнутом формате?

В бинарном:
М: как вы оцениваете то, что происходит в Киеве? = FALSE
Л: (жен, 67 лет): оценка может быть только одна – это захват власти. = TRUE
МО: (муж, 48 лет): антиконституционный переворот. = TRUE
Вопрос исчерпан?
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 24.04.2014 в 11:49.
Smitt&Wesson вне форума Ответить с цитированием
Старый 24.04.2014, 13:24   #3
@лёнк@
 
Регистрация: 24.04.2014
Сообщений: 6
По умолчанию

Объясню задачу полностью. Еще раз сделаю акцент, что я понятия не имею, как все это делать. Знаю только, как создать макрос и могу вставить конструкцию, которую вы мне поможете написать))) Я занимаюсь транскрибацией текстов и затем мне нужно отредактировать текст по определенному шаблону. Ручками это занимает по два часа. Объемы текстов очень большие.
Что мне нужно при редактировании моей работы:
1. Начало каждой строчки до двоеточия включительно выделить жирным, например, "МО:" или "Л:", или любое другое начало реплики с двоеточием.
2. После каждого начала реплики "М:" (буква М, двоеточие, пробел), всю реплику выделить жирным шрифтом.
3. Перенести конструкцию из скобок и двоеточия, например, "(муж, 48 лет):" или "(жен, 67 лет):", из начала строки в конец, чтобы после точки стояло два пробела и конструкция из скобок.
4. После переноса скобок с двоеточием, удалить двоеточие в конце.
5. Удалить пустые строки, которые идут между репликами.

Вот как-то так.... Возможно такое?
@лёнк@ вне форума Ответить с цитированием
Старый 24.04.2014, 13:30   #4
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,077
По умолчанию

попробуйте на копии

Код:
Sub w140425_1221()
Dim pr As Paragraph
'эDim r As Range
Dim s1, s2, s21, s22, s23
Dim j1, j1k, j2, j3, j3k

j1k = Word.ActiveDocument.Paragraphs.Count
Do While j1k > 0
With Word.ActiveDocument.Paragraphs(j1k)
s1 = .Range.Text

    If Len(s1) < 3 Then
    .Range.Delete
    Else
    j2 = InStr(s1, ":")
    j3 = InStr(s1, "(")
    j3k = InStr(s1, "):")
        If j3 > 0 And j3k > j3 Then
        s21 = Mid(s1, 1, j3 - 1)
        s22 = Mid(s1, j3, j3k - j3 + 1)
        s23 = Mid(s1, j3k + 2)
        s23 = Replace(s23, Chr(13), ",")
        s23 = Replace(s23, Chr(10), "w`")
        
        s2 = s21 & s23 & s22 & Chr(13) & Chr(10)
        .Range.Text = Replace(s2, "  ", " ")
        
        Do While j2 > 0
        Word.ActiveDocument.Paragraphs(j1k).Range.Characters(j2).Font.Bold = True
        j2 = j2 - 1
        Loop
        
        Else
        
        .Range.Font.Bold = True
        End If
    
    End If


End With
j1k = j1k - 1
Loop


End Sub
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 24.04.2014, 13:39   #5
@лёнк@
 
Регистрация: 24.04.2014
Сообщений: 6
По умолчанию

shanemac51, спасибо большое!!!!! Это волшебство какое-то!!!)))
Только нужно поправить еще вот что: когда перенеслись конструкции со скобочками в конец строки, между точкой и скобками появилась запятая, а надо просто два пробела после точки.
@лёнк@ вне форума Ответить с цитированием
Старый 24.04.2014, 13:40   #6
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,077
По умолчанию

Код:
s23 = Replace(s23, Chr(13), " ")
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 24.04.2014, 13:56   #7
@лёнк@
 
Регистрация: 24.04.2014
Сообщений: 6
По умолчанию

не выходит((( эту строку нужно вставить вместо
s23 = Replace(s23, Chr(13), ",") ?
@лёнк@ вне форума Ответить с цитированием
Старый 24.04.2014, 14:08   #8
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,077
По умолчанию

да, надо заменить строку
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Старый 24.04.2014, 14:54   #9
@лёнк@
 
Регистрация: 24.04.2014
Сообщений: 6
По умолчанию

shanemac51, все получилось!!! Так здорово!! Даже не знаю, как вас за это отблагодарить!!

shanemac51, а еще один вопросик, как убрать лишние пробелы после двоеточия в начале строки? чтобы после, например, "МО:" стоят только один пробел?

Последний раз редактировалось Stilet; 18.07.2014 в 18:31.
@лёнк@ вне форума Ответить с цитированием
Старый 24.04.2014, 15:22   #10
shanemac51
Участник клуба
 
Аватар для shanemac51
 
Регистрация: 12.08.2010
Сообщений: 1,077
По умолчанию

Код:
s2 = s21 & s23 & s22 & Chr(13) & Chr(10)
s2=Replace(s2, "  ", " ")
s2=Replace(s2, "  ", " ")
s2=Replace(s2, ":  ", ": ")
 .Range.Text = s2
Имя-Галина== почта shanemac51@yandex.ru скайп shanemac51 c 8-15мск будни
Сфера интересов--word-excel-access-распознавание
shanemac51 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Огромная просьба помочь с написанием небольшого макроса ds_nn Microsoft Office Excel 14 06.08.2010 01:04
Помогите глупой брюнетке)) alien-kurgan Помощь студентам 4 12.11.2009 18:29
Помогите с написанием макроса для Word,который преобразует кодировку текста из указанной в указанную Сотников Роман Помощь студентам 6 30.05.2009 18:34
Помогите нарисовать блок-схему на ооочень маленький кусочек программы!!!!! metamfetamin Помощь студентам 1 24.11.2007 22:55