全角カタカナを半角にするマクロを先日作りました。
この記事で紹介したマクロは、固定列の処理でした。(A列のカタカナを変換して、B列に書き込む)

Excelでカタカナのみ全角半角変換するマクロ
半角カナの存在はなくなりません。システム開発の現場でバリバリ使われています。Excel関数では「半角カナのみ変換」という関数は存在しないので、マクロでの変換処理が必要です。
しかし実際にExcelでドキュメント作成をしていると、「選択したセルだけ変換したい」という場面が多いです。
そのため、ソースコードを少し改良しました。
カタカナを、全角から半角に変換するマクロ
Sub 全角カナ⇒半角カナ変換()
'
' JIS関数は、アルファベットや記号も全角にしてしまうので、
' 半角カナ限定で、半角⇔全角 の変換ができるマクロ
'
Dim c As Range '選択範囲のループ用
Dim myStr As String
Dim Match As Object, Matches As Object
If TypeName(Selection) = "Range" Then
With CreateObject("VBScript.RegExp")
.Pattern = "[\u30A1-\u30FF]+" '全角カナを文字コードで指定
.Global = True
For Each c In Selection
myStr = c.Value
If Len(myStr) > 0 Then
Set Matches = .Execute(myStr)
'マッチしたすべての文字列を置換
For Each Match In Matches
myStr = Replace(myStr, Match.Value, _
StrConv(Match.Value, vbNarrow)) '全角⇒半角
Next Match
'セルに反映
c.Value = myStr
End If
Next c
End With
End If
End Sub
カタカナを、半角から全角に変換するマクロ
Sub 半角カナ⇒全角カナ変換()
'
' JIS関数は、アルファベットや記号も全角にしてしまうので、
' 半角カナ限定で、半角⇔全角 の変換ができるマクロ
'
Dim c As Range '選択範囲のループ用
Dim myStr As String
Dim Match As Object, Matches As Object
If TypeName(Selection) = "Range" Then
With CreateObject("VBScript.RegExp")
.Pattern = "[\uFF61-\uFF9F]+" '半角カナを文字コードで指定
.Global = True
For Each c In Selection
myStr = c.Value
If Len(myStr) > 0 Then
Set Matches = .Execute(myStr)
'マッチしたすべての文字列を置換
For Each Match In Matches
myStr = Replace(myStr, Match.Value, _
StrConv(Match.Value, vbWide)) '半角⇒全角
Next Match
'セルに反映
c.Value = myStr
End If
Next c
End With
End If
End Sub
このマクロを、リボン登録すれば簡単に実行できます。

Excelのリボンに無いコマンドを、マクロ登録する方法
Excelで頻繁に使うメニューなのにリボンに存在しなくて面倒に思う事はありませんか? 必要な処理はマクロ登録して、リボンから1クリックで使えるようにしましょう。使用頻度の高い「文字配置を選択範囲内で中央揃え」「文字サイズを縮小して全体を表示する」のサンプルコード付きです。
ぜひお試しください。

