Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Basic / VBA


Новое направление Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Basic/VBA

Выпуск № 672
от 14.12.2007, 21:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 276, Экспертов: 39
В номере:Вопросов: 1, Ответов: 1


Вопрос № 113140: Большое спасибо, за помощь с созданием макроса в Excel, а как создать макрос, с таким же заданием, в MOffice, привязав его к командной кнопке в уже открытом документе. Он должен подсчитывать количество слов в предложениях с количеством символов больш...

Вопрос № 113.140
Большое спасибо, за помощь с созданием макроса в Excel, а как создать макрос, с таким же заданием, в MOffice, привязав его к командной кнопке в уже открытом документе. Он должен подсчитывать количество слов в предложениях с количеством символов больше 40, и в результате должно получаться селедующее: MsgBox "Введите номер предложения"(вводим) - MsgBox "Всего в тексте предложений ..., предложений с количеством символов < 40 ..." - MsgBox" "В этом предложении символов=..., слов=..."(или "В этом предложении больше 40 символов!!!", или "Такого предложения не существует") - MsgBox "Всего слов в предложениях с количеством символов меньше 40 ...".
И еще результат должен выводиться после текста в виде (зеленым цветом):
Предложений с количеством символов меньше 40 ...
Всего слов в этих предложениях ...

Буду очень благодарна, если поможете.

Приложение:

Отправлен: 09.12.2007, 20:42
Вопрос задала: Atina (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Черников Игорь Владимирович
Здравствуйте, Atina!
'Открываем файл Документ Microsoft Word с набранным текстом
'Ставим курсор в то место, куда нужно вставить кнопку.
'Щёлкаем правой кнопкой мыши по стандартной панеле управления, где написано "Файл", "Правка"...
'Cтавим галочку на Visual Basic
'В появившейся панеле нажимаем значёк с молоточком и ключом
'В появившихся элементах управления нажимаем значок с надписью Кнопка
'Щёлкаем 2 раза по появившейся CommandButton и вставляем этот код туда, где окажется курсор
'Нажимаем ещё раз молоточек с ключом и треугольник с карандашом.
'Всё, теперь кнопка работает, можете нажимать

Dim KolSimbol As Integer 'Обявляем переменные
Dim simbol As String
Dim ZadanPredl As Integer
Dim menshe As Integer
Dim rovno As Integer
Dim bolshe As Integer
Dim SlovMenshe As Integer
Dim SlovRovno As Integer
Dim SlovBolshe As Integer
Dim KolSolvVsego As Integer
Dim KolSimbolovVsego As Double
Dim FlagProbel As Boolean 'может принимать значения только True или False

Selection.EndKey Unit:=wdStory 'заходим в конец файла
Selection.TypeText Text:=Chr(182) 'записываем туда метку
Selection.HomeKey Unit:=wdStory 'возвращаемся в начало файла

On Error Resume Next 'Включаем обработчик ошибок, если он не нужен, эту строку можно убрать
10 ZadanPredl = InputBox("Введите предложения", "Ввод") 'Вводим нужную цифру
If Err.Number = 13 Then 'Обрабатываем ошибки, если не нужно, можно убрать до строки End If
MsgBox ("Можно вводить только цифры, повторите ввод")
Err.Clear
GoTo 10
End If

Do 'Цикл до конца файла
simbol = ActiveDocument.Range(Start:=Selection.End, End:=Selection.End + 1) 'Читаем из файла по одному символу
KolSimbol = KolSimbol + 1 'Считаем количество символов
If simbol <> " " Then 'Если это не пробел, то...
FlagProbel = True 'Это для того, чтобы лишние пробелы между слов не посчитать как слова
Else 'Если пробел, то... (Если слово кончилось то...)
If FlagProbel = True Then 'Если это не лишний пробел, то...
KolSolv = KolSolv + 1 'Считаем количество слов в предложении
FlagProbel = False
End If
End If
If simbol = "." Then 'Если это точка (конец предложения), то...
NumPredl = NumPredl + 1 'Считаем предложения
KolSolv = KolSolv + 1 'Считаем слова
KolSolvVsego = KolSolvVsego + KolSolv
KolSimbolovVsego = KolSimbolovVsego + KolSimbol
Select Case KolSimbol 'Если количество символов...
Case 0 To 39 'от 0 до 39, то...
menshe = menshe + 1
SlovMenshe = SlovMenshe + KolSolv
Case 40 'равно 40
rovno = rovno + 1
SlovRovno = SlovRovno + KolSolv
Case Else 'иначе
bolshe = bolshe + 1
SlovBolshe = SlovBolshe + KolSolv
End Select 'Конец сравнения
If ZadanPredl = NumPredl Then 'Если заданное предложение совпадает с прочитанным, то...
SlovVPredl = KolSolv
Simvolov = KolSimbol
End If
KolSolv = 0 'Обнуляем количество слов
KolSimbol = 0 'Обнуляем количество символов
End If
Selection.MoveRight Unit:=wdCharacter, Count:=1
Loop While Not simbol = Chr(182) 'Конец цикла

Select Case Simvolov 'В зависимости от количества символов в предложении, выводим сообщение
'Пробел, знаки препинания, перевод каретки на новую строку - тоже символы
Case 0
MsgBox ("Всего предложений - " & NumPredl & ", слов - " & KolSolvVsego & ", символов - " & KolSimbolovVsego & Chr(13) & Chr(10) & _
" Из них:" & Chr(13) & Chr(10) & _
"предложений с количеством символов < 40 - " & menshe & "," & Chr(13) & Chr(10) & _
"предложений с количеством символов = 40 - " & rovno & "," & Chr(13) & Chr(10) & _
"предложений с количеством символов > 40 - " & bolshe & "." & Chr(13) & Chr(10) & _
" Слов предложениях:" & Chr(13) & Chr(10) & _
"где количество символов < 40 - " & SlovMenshe & "," & Chr(13) & Chr(10) & _
"где количество символов = 40 - " & SlovRovno & "," & Chr(13) & Chr(10) & _
"где количество символов > 40 - " & SlovBolshe & "." & Chr(13) & Chr(10) & _
"Предложения №" & ZadanPredl & " не существует! Проверьте.")
Case 1 To 39
MsgBox ("Всего предложений - " & NumPredl & ", слов - " & KolSolvVsego & ", символов - " & KolSimbolovVsego & Chr(13) & Chr(10) & _
" Из них:" & Chr(13) & Chr(10) & _
"предложений с количеством символов < 40 - " & menshe & "," & Chr(13) & Chr(10) & _
"предложений с количеством символов = 40 - " & rovno & "," & Chr(13) & Chr(10) & _
"предложений с количеством символов > 40 - " & bolshe & "." & Chr(13) & Chr(10) & _
" Слов предложениях:" & Chr(13) & Chr(10) & _
"где количество символов < 40 - " & SlovMenshe & "," & Chr(13) & Chr(10) & _
"где количество символов = 40 - " & SlovRovno & "," & Chr(13) & Chr(10) & _
"где количество символов > 40 - " & SlovBolshe & "." & Chr(13) & Chr(10) & _
"Количество слов в предложении №" & ZadanPredl & " - " & SlovVPredl & Chr(13) & Chr(10) & _
"Количество символов в этом предложении меньше 40, т.е. " & Simvolov)
Case 40
MsgBox ("Всего предложений - " & NumPredl & ", слов - " & KolSolvVsego & ", символов - " & KolSimbolovVsego & Chr(13) & Chr(10) & _
" Из них:" & Chr(13) & Chr(10) & _
"предложений с количеством символов < 40 - " & menshe & "," & Chr(13) & Chr(10) & _
"предложений с количеством символов = 40 - " & rovno & "," & Chr(13) & Chr(10) & _
"предложений с количеством символов > 40 - " & bolshe & "." & Chr(13) & Chr(10) & _
" Слов предложениях:" & Chr(13) & Chr(10) & _
"где количество символов < 40 - " & SlovMenshe & "," & Chr(13) & Chr(10) & _
"где количество символов = 40 - " & SlovRovno & "," & Chr(13) & Chr(10) & _
"где количество символов > 40 - " & SlovBolshe & "." & Chr(13) & Chr(10) & _
"Количество слов в предложении №" & ZadanPredl & " - " & SlovVPredl & Chr(13) & Chr(10) & _
"Количество символов в этом предложении равно 40.")
Case Else
MsgBox ("Всего предложений - " & NumPredl & ", слов - " & KolSolvVsego & ", символов - " & KolSimbolovVsego & Chr(13) & Chr(10) & _
" Из них:" & Chr(13) & Chr(10) & _
"предложений с количеством символов < 40 - " & menshe & "," & Chr(13) & Chr(10) & _
"предложений с количеством символов = 40 - " & rovno & "," & Chr(13) & Chr(10) & _
"предложений с количеством символов > 40 - " & bolshe & "." & Chr(13) & Chr(10) & _
" Слов предложениях:" & Chr(13) & Chr(10) & _
"где количество символов < 40 - " & SlovMenshe & "," & Chr(13) & Chr(10) & _
"где количество символов = 40 - " & SlovRovno & "," & Chr(13) & Chr(10) & _
"где количество символов > 40 - " & SlovBolshe & "." & Chr(13) & Chr(10) & _
"Количество слов в предложении №" & ZadanPredl & " - " & SlovVPredl & Chr(13) & Chr(10) & _
"Количество символов в этом предложении больше 40 т.е. " & Simvolov)
End Select

If simbol = Chr(182) Then 'Если конец файла
Selection.MoveLeft Unit:=wdCharacter, Count:=1 'Ставим курсор на метку
Selection.Delete 'удаляем метку
End If
Selection.TypeParagraph 'переводим курсор на следующую строку
Selection.ClearFormatting 'очищаем формат текста
Selection.Font.Color = wdColorSeaGreen ' окрашиваем его в зелёный цвет
Selection.TypeText Text:=Chr(13) & "Всего предложений - " & NumPredl & ", слов - " & KolSolvVsego & ", символов - " & KolSimbolovVsego & Chr(13) & _
" Из них:" & Chr(13) & _
"предложений с количеством символов < 40 - " & menshe & "," & Chr(13) & _
"предложений с количеством символов = 40 - " & rovno & "," & Chr(13) & _
"предложений с количеством символов > 40 - " & bolshe & "." & Chr(13) & _
" Слов предложениях:" & Chr(13) & _
"где количество символов < 40 - " & SlovMenshe & "," & Chr(13) & _
"где количество символов = 40 - " & SlovRovno & "," & Chr(13) & _
"где количество символов > 40 - " & SlovBolshe & "." & Chr(13) & _
"Количество слов в предложении №" & ZadanPredl & " - " & SlovVPredl & Chr(13) & _
"Количество символов в этом предложении больше 40 т.е. " & Simvolov 'и вставляем текст.
Удачи!
---------
От каждого по способностям, каждому по труду
Ответ отправил: Черников Игорь Владимирович (статус: 8-ой класс)
Ответ отправлен: 13.12.2007, 19:35


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Техподдержка портала, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.65 от 04.12.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное