A列にある会社名から(株)やカッコ等をとり、B列にふりがなをひらがなにして出力するエクセルVBAです。
主にChatGPTに書いてもらいましたが、今回はふりがなをふるのはVBAだけでは難しいとか、ごねられました。なんとかしましたが。こういう日本語特有のことは苦手なんでしょうか・・・。
Sub 特殊文字を削除し振り仮名を出力()
Dim シート名 As String: シート名 = "test"
Dim データ列 As String: データ列 = "A"
Dim 列 As String: 列 = "B"
With Worksheets(シート名)
Dim 最初行 As Long: 最初行 = 2 ' データ列のはじめの行を取得
Dim 最終行 As Long ' データ列の最終行を取得
最終行 = .Cells(Rows.Count, データ列).End(xlUp).Row
Dim 行番号 As Long
Dim セルの値 As String
For 行番号 = 最初行 To 最終行
DoEvents 'ひっかかり用
セルの値 = .Cells(行番号, データ列).Value
' 指定された不要な文字を置換
セルの値 = Replace(セルの値, "(株)", "")
セルの値 = Replace(セルの値, "(有)", "")
セルの値 = Replace(セルの値, "株式会社", "")
セルの値 = Replace(セルの値, "有限会社", "")
セルの値 = Replace(セルの値, "・", "")
セルの値 = Replace(セルの値, "「", "")
セルの値 = Replace(セルの値, "」", "")
' 半角カッコ対応
セルの値 = Replace(セルの値, "(株)", "")
セルの値 = Replace(セルの値, "(有)", "")
セルの値 = Replace(セルの値, "(", "")
セルの値 = Replace(セルの値, ")", "")
' 全角カッコ対応
セルの値 = Replace(セルの値, "(", "")
セルの値 = Replace(セルの値, ")", "")
' 結果をセルに反映
.Cells(行番号, データ列).Value = セルの値
'となりに読み仮名
.Cells(行番号, データ列).SetPhonetic
.Cells(行番号, 列) = "=Phonetic(" & データ列 & 行番号 & ")"
' カタカナをひらがなに変換
.Cells(行番号, 列) = StrConv(.Cells(行番号, 列).Value, vbHiragana)
Next 行番号
End With
MsgBox "終わります"
End Sub
記事は以上になります。
ご覧いただきありがとうございました。