| 
    
     |  | 皆さん、おはようございます。 >>
 >>確認させて頂きました。カナのみの変換、バッチリですね。
 >>新ピカつーるに使わさせて頂くかもしれません。
 >
 >こんにちは。
 >前に半角カタカナの濁音半濁音で、チョンボしたことが合ったんで試してみようとしたら、
 >97だと、Enumはコンパイルエラーで動きまへんでした。
 Enumステートメントって2000からだったんですねえ・・・。
 ちょっとした訂正もあったので、再投稿です。
 
 '===================================================================
 'Public Enum kanacnv
 '  kwide = 4
 '  knarrow = 8
 'End Enum
 Dim regEx
 '==================================================
 Sub main() '全角に変換
 Dim rng As Range
 Application.ScreenUpdating = False
 Set regEx = CreateObject("VBScript.RegExp")
 For Each rng In ActiveSheet.UsedRange
 With rng
 .Value = kana_cnv(.Value, 4)
 End With
 Next
 Set regEx = Nothing
 Application.ScreenUpdating = True
 End Sub
 '=========================================================
 Function kana_cnv(cnv_str, w_or_n As Long)
 '指定された文字列のカタカナを全角又は、半角に変換する
 'input---cnv_str---変換する文字列
 '    w_or_n 変換指示 4-全角変換 8-半角変換
 'output--kana_cnv 変換された文字列
 Dim Match, Matches '←これ、中の宣言でよかった
 With regEx
 If w_or_n = 4 Then
 .Pattern = "([。-、]|[ヲ-゚])+" '正規表現をちょっと変更
 ElseIf w_or_n = 8 Then
 .Pattern = "([ァ-ヶ]|゛|゜|、|。|「|」|ー)+"
 Else
 Exit Function
 End If
 .IgnoreCase = True
 .Global = True
 Set Matches = .Execute(cnv_str)
 kana_cnv = cnv_str
 If Matches.Count > 0 Then
 For Each Match In Matches
 .Pattern = Match.Value
 .IgnoreCase = False
 kana_cnv = regEx.Replace(kana_cnv, StrConv(Match.Value, w_or_n))
 If w_or_n = kwide Then kana_cnv = Replace(kana_cnv, "ク", Chr(&H8168))
 Next
 End If
 End With
 Set Match = Nothing
 Set Matches = Nothing
 End Function
 
 これ、「””」や「’」も入れるという仕様だと工夫が必要ですね!!
 (今回は、カナということで入れてないですが)
 
 |  |