【VBA】半角カタカナのみを全角にするには?
http://bekkoame.okwave.jp/qa8979427.html
こちらのページを参考にしたのですが
カタカナのみ全角にしたいのですが
平仮名がカタカナになってしまいます。
正規表現と言うのがよくわからないので
コピペで使ってますが
Sub Sample2()
Dim myStr As String
Dim Match As Object, Matches As Object
Dim CW As String
With CreateObject("VBScript.RegExp")
.Pattern = "[\uFF61-\uFF9F]+" '---(1)
.Global = True
myStr = "あああイイイ"
If Len(myStr) > 0 Then
Set Matches = .Execute(myStr)
'マッチしたすべての文字列を置換
For Each Match In Matches
myStr = Replace(myStr, Match.Value, _
StrConv(Match.Value, vbWide)) '---(2)
Next Match
CW = myStr
End If
End With
End Sub
だと「あああ」は平仮名のままなのですが
myStr = "のののノノノ"
にすると、ひらがなの「ののの」が全角カタカナになってしまいます。
Sub test()
Call KanaJisF("あああイイイ")
End Sub
Function KanaJisF(ByVal sSrc As String) As String
Dim sTempW As String
Dim sTempN As String
Dim i As Long
' ' 全角カナに相当する文字コードを総当たりでループ
For i = -31852 To -31936 Step -1
sTempW = Chr(i) ' 全角カナ変数に格納
sTempN = StrConv(sTempW, vbNarrow) ' 半角カナに変換して変数に格納
' ' 半角カナ各文字が、文字列に含まれている場合、全角カナに置換
If InStr(1, sSrc, sTempN) Then sSrc = Replace(sSrc, sTempN, sTempW)
Next i
' ' 半角長音、文字列に含まれている場合、全角長音に置換
sTempN = Chr(176)
If InStr(sSrc, sTempN) Then sSrc = Replace(sSrc, sTempN, "ー")
KanaJisF = sSrc
End Function
こちらのコードは、「あああ」も全角カタカナになりました。
"のののノノノ"も同様です。
平仮名は平仮名のままにしたいのですが
そのような方法はありますか?
補足
説明が誤っており、申し訳ございません。 見直した所、今回行いたいのは入力チェックのみで、半角カナ・全角カナ以外が混ざっていた場合にエラーとしたいのです。