Подсчет числа каждого символа в документе Word
Могут возникнуть ситуации, когда вы захотите узнать, сколько каждой буквы алфавита встречается в документе Word, т. е. сколько каждой буквы от A до Z. Или, может быть, вы хотите узнать, какие буквы чаще всего используются в конкретном тексте.
В эту статью включены два готовых к использованию макроса VBA, которые позволяют подсчитать количество каждой буквы или другого символа в документе Word.
Макросы созданы таким образом, чтобы вам было легко включать именно те буквы и/или другие символы, которые вы хотите. Например, вы можете добавить цифры 0-9если вы хотите также включить количество каждой из этих цифр.
- MACRO 1 показывает результат в диалоговом окне с подсчетом каждого символа в указанном вами порядке.
- MACRO 2 показывает результат в диалоговом окне с отсортированным количеством символов по количеству вхождений в порядке убывания, т. е. символ, который встречается чаще всего, показывается первым.
Обратите внимание, что макросы учитывают только символы основного текста. Символы в верхних и нижних колонтитулах, концевых сносках, сносках и т. д. не учитываются.
Опубликовано 1 марта 2022 г.
Быстрая навигация
МАКРОС 1 – Подсчет количества символов в указанном порядке
Результат выполнения МАКРОСА 1
МАКРОС 2 – Подсчет количества каждого символа в порядке номеров
Результат выполнения МАКРОСА 2
Как изменить макрос на количество символов только при выборе
Как получить общее количество символов в документе Word
Как получить общее количество символов с помощью VBA
Информация, связанная с данной
МАКРОС 1 – количество каждого символа в указанном порядке.
вы можете легко настроить, чтобы включить буквы или другие символы, которые вы хотите.
Если вы включаете в строку числа 0-9, вхождение каждого из чисел также будет включено.
Смотрите комментарии в макросе.
Вы можете скопировать приведенный ниже код макроса и вставить его либо в свой файл Normal.dotm, либо в другой файл Word по вашему выбору. Справку по установке макроса см. в разделе Как установить макрос.
Sub FindNumberOfEachCharacterInActiveDocument_SortedAlphabetically () '========================== 'Макрос создан в 2022 году Лене Фредборг, DocTools - www.thedoctools.com «ЭТО МАКРО ЗАЩИЩЕНО АВТОРСКИМ ПРАВОМ. ВЫ МОЖЕТЕ ИСПОЛЬЗОВАТЬ МАКРОС, НО ВЫ ДОЛЖНЫ СОХРАНЯТЬ ЛИНИЮ ВЫШЕ. «ВАМ НЕ РАЗРЕШАЕТСЯ ПУБЛИКОВАТЬ МАКРОС КАК СВОЙ СОБСТВЕННЫЙ, ПОЛНОСТЬЮ ИЛИ ЧАСТИЧНО. '========================== 'Макрос создает список количества вхождений в активном документе 'каждого символа в указанном вами списке. 'Макрос проверяет только основную текстовую историю. 'Результат отображается в диалоговом окне в указанном вами порядке символов. '========================== Dim strText как строка Dim strTextNew как строка Dim lngCount As Long Dim strInfo как строка Dim strMsg как строка Dim lngTotal As Long Dim strCharacters как строка Dim strChar как строка 'Чтобы упростить вам редактирование списка символов для подсчета, 'список определяется как строка strCharacters.'Отредактируйте строку по желанию, например, добавьте ÆØÅ в случае датского языка. '========================== 'Макрос не различает прописные и строчные буквы. '========================== strCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" стрМсг = "" strText = UCase(ActiveDocument.Range.Text) lngTotal = Лен(strText) Для lngCount = 1 To Len(strCharacters) 'Получить символ lngCount из strCharacters strChar = Mid (strCharacters, lngCount, 1) 'Чтобы получить количество вхождений: 'Заменить strChar на "" и вычислить разницу в длине strTextNew = Заменить (UCase (strText), strChar, "") strInfo = strChar & ":" & vbTab & lngTotal - Len(strTextNew) & vbCr 'Добавить информацию к сообщению strMsg = strMsg & strInfo Следующий lngCount 'Показать информацию в диалоговом окне strMsg = strMsg & vbCr & vbCr & _ "Общее количество символов в основном текстовом рассказе: " & lngTotal 'Если ваш список strCharacters не упорядочен по алфавиту, 'вы должны отредактировать заголовок MsgBox ниже MsgBox strMsg, vbOKOnly, "Количество символов в алфавитном порядке" Конец сабвуфера
Результат запуска MACRO 1
Ниже вы можете увидеть пример диалогового окна, показанного при запуске MACRO 1 выше. Результаты сортируются в алфавитном порядке, потому что список в strCharacters отсортирован таким образом. Результаты будут перечислены в порядке расположения символов в strCharacters.
Пример запуска МАКРОС 1 .
МАКРОС 2 – Подсчет числа каждого символа в числовом порядке
Этот макрос является расширением макроса выше. Чтобы получить результирующий список, отсортированный по количеству вхождений каждого символа, используется временный документ Word.
См. комментарии к макросу.
Вы можете скопировать приведенный ниже код макроса и вставить его либо в свой файл Normal.dotm, либо в другой файл Word по вашему выбору. Справку по установке макроса см. в разделе Как установить макрос.
Sub FindNumberOfEachCharacterInActiveDocument_SortedByOccurrences() '========================== 'Макрос создан в 2022 году Лене Фредборг, DocTools - www.thedoctools.com «ЭТО МАКРО ЗАЩИЩЕНО АВТОРСКИМ ПРАВОМ. ВЫ МОЖЕТЕ ИСПОЛЬЗОВАТЬ МАКРОС, НО ВЫ ДОЛЖНЫ СОХРАНЯТЬ ЛИНИЮ ВЫШЕ.«ВАМ НЕ РАЗРЕШАЕТСЯ ПУБЛИКОВАТЬ МАКРОС КАК СВОЙ СОБСТВЕННЫЙ, ПОЛНОСТЬЮ ИЛИ ЧАСТИЧНО. '========================== 'Макрос создает список количества вхождений в активном документе 'каждого символа в указанном вами списке. 'Макрос проверяет только основную текстовую историю. 'Результат отображается в диалоговом окне, отсортированном по вхождению каждого символа в порядке убывания. '========================== Dim strText как строка Dim strTextNew как строка Dim lngCount As Long Dim strInfo как строка Dim strMsg как строка Dim lngTotal As Long Dim lngChar As Long Dim strCharacters как строка Dim strChar как строка Dim oDocTemp как документ Dim oTable как таблица Application.ScreenUpdating = Ложь 'Чтобы упростить вам редактирование списка символов для подсчета, 'список определяется как строка strCharacters. 'Отредактируйте строку по желанию, например, добавьте ÆØÅ в случае датского языка. '========================== 'Макрос не различает прописные и строчные буквы. '========================== strCharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" стрМсг = "" strText = UCase(ActiveDocument.Range.Text) lngTotal = Лен(strText) 'Создать временный документ для хранения количества символов и выполнения сортировки 'Предотвратить запуск макроса AutoNew, если он найден WordBasic.DisableAutoMacros 1 Установите oDocTemp = Documents.Add 'Вставьте таблицу для добавления информации для окончательного сообщения С одоктемп .Диапазон.Текст = "" 'Вставить таблицу из 2 столбцов, количество строк = длина strCharacters Установить oTable = .Tables.Add(.Range, Len(strCharacters), 2) Конец с 'Добавить информацию о каждом символе в strCharacters Для lngCount = 1 To Len(strCharacters) 'Получить символ lngCount из strCharacters strChar = Mid (strCharacters, lngCount, 1) 'Чтобы получить количество вхождений: 'Заменить strChar на "" и вычислить разницу в длине strTextNew = Заменить (UCase (strText), strChar, "") lngChar = lngTotal - Len(strTextNew) 'Вставить результат в ячейку 2 таблицы oTable. Cell(lngCount, 2).Range.Text = lngChar 'Вставить символ в ячейку 1 в таблице oTable.Cell(lngCount, 1).Range.Text = strChar Следующий lngCount 'Сортировать таблицу по столбцу 2 и преобразовать в текст oTable.Sort ExcludeHeader:=False, FieldNumber:="Столбец 2", _ SortFieldType:=wdSortFieldNumeric, SortOrder:=wdSortOrderDescending oTable.Rows.ConvertToText Разделитель: = wdSeparateByTabs 'Сохраняем текст из oDocTemp, готовый для использования в финальном сообщении strInfo = oDocTemp.Range.Text 'Закрыть oDocTemp без сохранения oDocTemp.Close wdDoNotSaveChanges Application.ScreenUpdating = Истина 'Показать информацию в диалоговом окне strMsg = strInfo & vbCr & vbCr & _ "Общее количество символов в основном текстовом рассказе: " & lngTotal MsgBox strMsg, vbOKOnly, "Количество символов отсортировано по убыванию" 'Очистить Установите oDocTemp = Ничего Установите oTable = Ничего 'Включить автоматические макросы снова WordBasic. DisableAutoMacros 0 Конец сабвуфера
Результат запуска MACRO 2
Ниже вы можете увидеть пример диалогового окна, показанного при запуске MACRO 2 выше.
В диалоговом окне отображается количество символов, отсортированное по количеству вхождений в порядке убывания, т. е. наиболее часто встречающийся символ отображается первым.
Пример запуска MACRO 2 .
Как изменить макрос для подсчета символов только в выделенном фрагменте
Возможно, вас интересует подсчет символов только в части документа. Вы можете легко изменить макросы, чтобы сделать это. Следующее относится к обоим макросам :
В макросе найдите строку:
strText = UCase(ActiveDocument.Range.Text)
Измените строку на:
strText = UCase(Selection.Text)
Перед запуском макроса выделите текст, в котором вы хотите подсчитать символы.
Как получить общее количество символов в документе Word
Если вы просто хотите узнать общее количество символов в документе Word, вы можете использовать встроенный в Word Функция подсчета слов .
Чтобы открыть диалоговое окно Количество слов , выберите вкладку Обзор на ленте > нажмите Количество слов .
Вы также можете открыть диалоговое окно Количество слов через строку состояния. Щелкните правой кнопкой мыши в строке состояния и выберите Количество слов , если этот параметр еще не отображается.
Диалоговое окно Количество слов показывает количество символов как с пробелами, так и без них. Диалоговое окно также показывает количество страниц, слов, абзацев и строк.
Как получить общее количество символов с помощью VBA
Вы можете использовать приведенный ниже код VBA, чтобы получить количество символов в основной текстовой истории документа Word:
ActiveDocument. Characters.Count
Дополнительная информация установки макроса см. Как установить макрос.
Знаете ли вы, что…
Надстройки DocTools Word
могут помочь вам сэкономить время в Word
На моем веб-сайте wordaddins.com вы найдете некоторые из надстроек Word, которые я разработал, готовы к использованию:
Doctools Addboilerplate
.
помогает вам быстро и легко управлять комментариями в Word — автоматическая нумерация, просмотр, извлечение комментариев и т. д. — подробнее…
Doctools CrossReerenceManager
Сделайте легче, чем когда -либо для работы с перекрестными ссылками.
Позволяет эффективно управлять данными документа с помощью настраиваемых свойств документа и полей DocProperty. Подробнее…
Doctools ExtractChanges Pro
позволяет извлекать вставки, делеции и комментарии в полном контексте и включали заголовки — Читать дальше. одним нажатием кнопки — подробнее…
DocTools ObjectBrowser
Просматривайте страницы, заголовки, таблицы, изображения и т. д. и находите текст в Word одним щелчком мыши — подробнее..
DocTools ProcedureGrammarChecker
Browse pages, headings, tables, graphic, etc. and find text in Word with a single click — read more…
DocTools ScreenTipManager
Позволяет быстро и легко создавать экранные подсказки в Word, содержащие до 2040 символов. Подробнее…
Просмотреть все надстройки DocTools для Word
Программа Python для подсчета количества слов и символов в строке
Это программа Python для подсчета количества слов и символов в строке.
Описание проблемы
Программа берет строку и вычисляет количество слов и символов, присутствующих в строке.
Проблема Решение
1. Возьмите строку от пользователя и сохраните ее в переменной.
2. Инициализируйте переменную счетчика символов равным 0, а переменную счетчика слов — 1.
4. Увеличивайте переменную счетчика слов, только если встречается пробел.
5. Выведите общее количество символов и слов в строке.
6. Выход.
Программа/Исходный код
Вот исходный код программы Python для подсчета количества слов и символов в строке. Вывод программы также показан ниже.
строка = raw_input («Введите строку:») символ = 0 слово=1 для я в строке: символ = символ + 1 если(я==''): слово=слово+1 print("Количество слов в строке:") печать (слово) print("Количество символов в строке:") печать (символ)
Описание программы
1. Пользователь должен ввести строку и сохранить ее в переменной.
2. Переменная счетчика символов инициализируется нулем, а переменная счетчика слов инициализируется 1 (для учета первого слова).
3. Цикл for используется для обхода символов в строке.
4. Количество символов увеличивается каждый раз, когда встречается символ, а количество слов увеличивается только при встрече с пробелом.
6. Выводится общее количество символов и слов в строке.
реклама
реклама
Тестовые случаи времени выполнения
Дело 1: Введите строку: Привет, мир Количество слов в строке: 2 Количество символов в строке: 11 Случай 2: Введите строку: Я люблю питон Количество слов в строке: 3 Количество символов в строке: 13
Sanfoundry Global Education & Learning Series – Программы Python.
Чтобы попрактиковаться во всех программах Python, здесь полный набор из 150+ задач и решений Python .
Следующие шаги:
- Получите бесплатный сертификат о заслугах в программировании на Python
- Примите участие в конкурсе сертификации программистов на Python
- Станьте лидером в программировании на Python
- Пройдите тесты по программированию на Python
- Практические тесты по главам: глава 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- Пробные тесты по главам: глава 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
реклама
реклама
Подпишитесь на наши информационные бюллетени (тематические).