文章にある漢字とひらがなの比率をだすPerplexityと一緒に作ったマクロ
この説明は、ChatGPTで作成しています。
このVBAプロシージャは、選択したセルにあるテキストの中で、「漢字」「ひらがな」、そしてそれ以外の文字(たとえばカタカナや記号など)が、それぞれ全体に対してどれくらいの割合を占めているかを計算して、メッセージボックスに表示するものです。
仕組みの説明
セルの選択範囲
プロシージャの冒頭で、選択したセルの範囲(Selection)を一つずつ読み込み、そのセルのテキストを処理します。テキストを整える
各セルのテキスト(text)からスペースを取り除いて、そのテキスト全体の長さを取得します。この長さが全体の文字数(totalLen)になります。漢字とひらがなの判定
テキストの中から漢字とひらがなをそれぞれ数えるために、正規表現(RegExp)という方法を使っています。漢字は「[\u4E00-\u9FFF]」という範囲で指定されています。これは通常の漢字を意味します。
ひらがなは「[\u3040-\u309F]」という範囲で指定され、長音符(「ー」など)は含まれていません。
比率の計算
漢字やひらがなの数を、それぞれの合計文字数(totalLen)で割ることで、全体に占める比率を計算します。最後に、残りの文字(カタカナや記号など)は「その他」として計算されます。結果の表示
計算結果は、選択したセルごとにメッセージボックスに表示されます。表示内容は、漢字、ひらがな、その他の文字がそれぞれ全体の何%を占めているかを示します。
これにより、どれだけ漢字やひらがなが使われているか簡単に確認できるので、日本語の文章のバランスを見るときなどに役立つプログラムです。
Sub 文章にある漢字とひらがなの比率をだすよPerplexity()
Dim myRng As Range, text As String, totalLen As Long
Dim kRatio As Double, hRatio As Double, oRatio As Double
For Each myRng In Selection
text = myRng.Value
If Len(text) > 0 Then
totalLen = Len(Replace(text, " ", ""))
With CreateObject("VBScript.RegExp")
.Global = True
.Pattern = "[\u4E00-\u9FFF]" '拡張漢字と漢字に似た文字や記号は含まず
kRatio = .Execute(text).count / totalLen
.Pattern = "[\u3040-\u309F]" '長音符(ー)は含まず
hRatio = .Execute(text).count / totalLen
End With
oRatio = 1 - (kRatio + hRatio)
MsgBox "【選択セル】 " & Replace(myRng.Address, "$", "") & vbNewLine & _
"漢字 : " & Format(kRatio, "0.0%") & vbNewLine & _
"ひらがな : " & Format(hRatio, "0.0%") & vbNewLine & _
"その他 : " & Format(oRatio, "0.0%")
End If
Next myRng
End Sub
ハッシュタグ
#excel #できること #vba #漢字カウント #ひらがなカウント #カタカナカウント #セル選択 #正規表現 #RegExp #日本語文章分析 #文字数カウント #セル処理 #テキスト解析 #Excelマクロ #メッセージボックス #割合計算 #文字バランス #オブジェクト作成 #VBA初心者 #文章解析
英語翻訳
Perplexity to Calculate Kanji and Hiragana Ratios in Text
This explanation is created using ChatGPT.
This VBA procedure calculates the proportion of kanji, hiragana, and other characters (such as katakana or symbols) in the text of the selected cells, and displays the results in a message box.
How It Works
Selected Cell Range
At the start, the procedure loops through the selected cells (Selection), processing the text within each one.Text Processing
The text from each cell (text) is stripped of spaces, and the total length of the remaining text is calculated. This length is referred to as the total number of characters (totalLen).Identifying Kanji and Hiragana
Regular expressions (RegExp) are used to count the occurrences of kanji and hiragana in the text.Kanji is identified by the pattern "[\u4E00-\u9FFF]", which matches typical kanji characters.
Hiragana is identified by the pattern "[\u3040-\u309F]", which excludes elongated vowels (like "ー").
Ratio Calculation
The number of kanji and hiragana characters is divided by the total number of characters (totalLen) to calculate their respective ratios. The remaining characters (katakana, symbols, etc.) are categorized as "others".Displaying Results
For each selected cell, the calculated ratios are shown in a message box, displaying what percentage of the total text consists of kanji, hiragana, and other characters.
This program is useful for analyzing the balance of kanji and hiragana in Japanese text, providing a quick insight into the structure of a document.
Hashtags
#excel #vba #kanjicount #hiraganacount #katakanacount #cellselection #regex #RegExp #japanesetextanalysis #charactercount #cellprocessing #textanalysis #excelmacro #messagebox #ratiocalculation #characterbalance #objectcreation #VBAforbeginners #textanalysis #japaneselanguage