カッコや(株)を削除してふりがなをひらがなにするVBA

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

 

記事は以上になります。
ご覧いただきありがとうございました。

おすすめの記事