【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
こちらのコードは、「あああ」も全角カタカナになりました。
"のののノノノ"も同様です。
平仮名は平仮名のままにしたいのですが
そのような方法はありますか?
お礼
上手くいかなかったプログラムではなく、テスト用に作ったプログラムで use encoding "Shift_JIS"; を使用して上手くいきました。 しかし、現在作成しているプログラムはちょっと特殊でencodingプラグマを入れると他の部分がおかしくなってしまいます。 この部分を説明するのはこのスペースでは大変なのでとりあえず、この質問は締め切ります。お答えいただいたのに変な返答ですいません。