Googleで検索しながらあちこちのコードを見て回り、最終的に自分でカスタマイズしたので、ここに貼っておきます。
中途半端なコードだと濁点や半濁点が残ってしまいますが、これはその問題も回避しています。
strOrg = StrConv(strOrg, vbWide) で一旦全角に変換しているところが、その回避策です。
‘カタカナは全角、英数字は半角にするユーザー定義関数
Function AscEx(strOrg As String) As String
Dim strRet As String
Dim intLoop As Integer
Dim strChar As String
strRet = “”
strOrg = StrConv(strOrg, vbWide)
For intLoop = 1 To Len(strOrg)
strChar = Mid(strOrg, intLoop, 1)If (StrConv(strChar, vbWide) Like “[ァ-ー]”) Then
strRet = strRet & StrConv(strChar, vbWide)Else strRet = strRet & StrConv(strChar, vbNarrow)End If
Next intLoop
AscEx = strRet
End Function
元のコードは「インストラクターのネタ帳」さんです。
Microsoft Office 365 Solo (最新 1年版)|オンラインコード版|Win/Mac/iPad|インストール台数無制限|メーカー主催3000円キャッシュバック実施中(12/25までposted with カエレバ マイクロソフト 2014-10-17 Amazon楽天市場