Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - Отладка программ

Ответить
Настройки темы
VBA - Отладка программ

Новый участник


Сообщения: 24
Благодарности: 1

Профиль | Отправить PM | Цитировать


1.Определить количество абзацев в документе. Абзац, который содержит наибольшее число предложений, выделить красным курсивом. Вывести в конце документа сообщение:
а) о количестве абзацев;
б) номера абзацев с наибольшим числом предложений.
2. Подсчитать в 4 абзаце (если такого нет, то выдать соответствующее сообщение) количество слов, начинающихся и заканчивающихся на одну и ту же букву. В конце документа вывести соответствующее сообщение.
3. Найти в документе самое длинное слово. Предложение с самым длинным словом скопировать в начало документа.

Отправлено: 21:29, 14-03-2011

 

Пользователь


Сообщения: 120
Благодарности: 22

Профиль | Цитировать


zena, вы хотите чтобы за Вас была решена задача или ждёте намека на решение, если первое то Вы ошиблись форумом (тут не фриланс), если второе то:
1. ThisDocument.Paragraphs.Count

насчет наибольшее число предложений
ThisDocument.Paragraphs(x).Range.Select
ThisDocument.Selection.Sentences.Count

выделить красным курсивом
ThisDocument.Selection.Font.Italic = True
ThisDocument.Selection.Font.Color = vbRed


а) количество абзацев ThisDocument.Paragraphs.Count
б) номера абзацев с наибольшим числом предложений - запоминать в массив при обходе во время поиска самого большого по предложениям абзаца

2. ThisDocument.Paragraphs(4).Range.Select
ThisDocument.Selection.Sentences(x).Select
ThisDocument.Selection.Words.Count
и соответственно использовать mid(Selection.Words(y).Text,1,1) = mid(Selection.Words(y).Text,len(Selection.Words(y).Text)-1,1)

3. ThisDocument.Words.Count - обходим по нему и находим

Отправлено: 14:53, 22-03-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


KnRSU, «ThisDocument» работает именно с тем документом, в котором находится макрос, так что всё ж — «ActiveDocument».

Отправлено: 18:11, 22-03-2011 | #3


Новый участник


Сообщения: 24
Благодарности: 1

Профиль | Отправить PM | Цитировать


Спасибо, я уже давно ничего не жду. Сама давно всё сделала:
Код: Выделить весь код
Sub P1()
'Первый вопрос.
Dim MaxКоличество As Long
Dim MaxНомер As Long
Dim i As Long
With ActiveDocument
    MaxКоличество = .Paragraphs(1).Range.Sentences.Count
    MaxНомер = 1
    For i = 1 To .Paragraphs.Count
        If .Paragraphs(i).Range.Sentences.Count > MaxКоличество Then
            MaxКоличество = .Paragraphs(i).Range.Sentences.Count
            MaxНомер = i
        End If
    Next i
    With .Paragraphs(MaxНомер).Range.Font
        .Italic = True
        .Color = wdColorRed
    End With
    .Content.InsertParagraphAfter
    .Range(Start:=.Range.End - 1, End:=.Range.End - 1).Text = _
        .ComputeStatistics(wdStatisticParagraphs)
    .Content.InsertParagraphAfter
    .Range(Start:=.Range.End - 1, End:=.Range.End - 1).Text = MaxНомер
End With
End Sub
Код: Выделить весь код
Sub P2()
'Второй вопрос
Dim КолСлов As Long
Dim Слово As Word.Range
With ActiveDocument
    If .ComputeStatistics(wdStatisticParagraphs) < 4 Then
        MsgBox "В предложении меньше 4 абазацев; программа будет завершена", vbCritical
        Exit Sub
    End If
For Each Слово In .Paragraphs(4).Range.Words
    If Left((Trim(Слово)), 1) = Right((Trim(Слово)), 1) Then
       КолСлов = КолСлов + 1
    End If
Next Слово
End With
MsgBox "В 4 абазаце количество слов, начинающихся и заканчивающихся на одну букву, равно: " & КолСлов
End Sub
Код: Выделить весь код
Sub P3()
'Третий вопрос
Dim i As Long
Dim MaxКол As Long
Dim MaxНомер As Long
With ActiveDocument
    MaxКол = .Words(1).Characters.Count
    MaxНомер = 1
    For i = 2 To .Words.Count
        If .Words(i).Characters.Count > MaxКол Then
            MaxКол = .Words(i).Characters.Count
            MaxНомер = i
        End If
    Next i
    .Range(Start:=.Words(MaxНомер).Sentences(1).Start, End:=.Words(MaxНомер).Sentences(1).End).Copy
    .Content.InsertParagraphBefore
    .Range(Start:=0, End:=0).Paste
End With
End Sub
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:32, 23-03-2011 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » VBA - Отладка программ

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Отладка/тестирование скриптов zbruy AutoIt 2 26-09-2009 16:53
C/C++ - Отладка программ в Visual C++ gustav21 Программирование и базы данных 2 26-09-2008 20:30
Отладка под Макинтош, помогите плиз Neto Вебмастеру 5 23-05-2005 06:41
Не работает отладка в Visual C++ 6.0 ic Программирование и базы данных 5 08-05-2004 22:01
Отладка программы в защенном режиме Guest Программирование и базы данных 4 20-11-2003 03:01




 
Переход